資源描述:
《基于AOP與MVC模式的Web應(yīng)用架構(gòu)的設(shè)計與實現(xiàn).pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、南京大學(xué)學(xué)報(自然科學(xué))第41卷Vol.41JOURNALOFNANJINGUNIVERSITY2005年10月Oct.,2005(NATURALSCIENCES)基于AOP與MVC模式的Web應(yīng)用架構(gòu)的設(shè)計與實現(xiàn)’趙成勇,周南,張曉泉(中國農(nóng)業(yè)大學(xué)網(wǎng)絡(luò)中心,北京,100083)摘要:MVC模式在WEB應(yīng)用架構(gòu)中得到廣泛的應(yīng)用,但其沒有涉及架構(gòu)業(yè)務(wù)層的可擴展性問題.將面向方面編程的思想引進WEB應(yīng)用架構(gòu)的設(shè)計,可以增強架構(gòu)業(yè)務(wù)層的可擴展性和穩(wěn)定性.給出使用MVC模式并結(jié)合AOP思想來構(gòu)建的一種WEB應(yīng)用架構(gòu),并使用3個優(yōu)秀的開源項目
2、(STRUTS,ASPECTWERKZ,HIBERNATE)對該架構(gòu)予以實現(xiàn)關(guān)鍵詞:MVC模式,AOP,WEB應(yīng)用架構(gòu)中圈分類號:TP311DesignandimplementationofWebApplicationArchitecturebasedonMVCPatternandAOPZhaoCheng-Yang,ZhouNan,ZkangXiao-Quan(NetworkCenter,ChinaAgricultureUniversity,Beijing,100083,China)Abstract:MVCPaternisusedi
3、nWebApplication八rchitecturewidely,butitdoesnotrefertotheextensibilityofthearchitecturesbusinesslayer.IntroducingAOPintothedesignofWebApplicationArchitecturecanimprovetheextensibilityandstabilityofthebusinesslayer.ThispaperintroducesaWebApplicationArchitecturebuiltonMVC
4、PatternandAOP,andthengivesanexampleimplementationwiththreefineopenstumeprojects.Keywords:MVCPattern,AOP,webapplicationarchitecture隨著Internet發(fā)展的日漸成熟,WEB應(yīng)用向方面編程)思想,保證架構(gòu)業(yè)務(wù)層具有良好的得到越來越多人的認(rèn)可,WEB應(yīng)用軟件的開發(fā)可擴展性,從而使得采用這種架構(gòu)的軟件系統(tǒng)從架構(gòu)層次上可以分為表示層,業(yè)務(wù)層和持久具有較強的可擴展性、穩(wěn)定性和可維護性.層一個靈活的WEB應(yīng)用架構(gòu)應(yīng)該
5、能夠降低1MVC模式這三層之間的藕合,并保證每個層次內(nèi)部具有良好的可擴展性.本文提出一種Wel〕應(yīng)用架MVC最初是美國施樂公司在上世紀(jì)80年構(gòu),一方面使用MVC(Model一View-代為編程語言Smalltalk280發(fā)明的一種軟件設(shè)Controler,模型一視圖一控制器)模式從架構(gòu)計模式.在該模型中應(yīng)用程序被分為3個組成層次上保證各層之間的低輛合,另一方面結(jié)合部分:模型(Model),視圖(View),控制器應(yīng)用AOP(Aspect一OrientedProgramming,面(Controller).·基金項目:國家科技攻關(guān)計劃
6、重次項目(2003BA808A14)第41卷趙成勇等:基于AOP與MVC模式的Web應(yīng)用架構(gòu)的設(shè)計與實現(xiàn)719模型包含了應(yīng)用程序功能的核心,提供使點的目的.用應(yīng)用程序功能的方法和途徑,集中體現(xiàn)了應(yīng)織人是實現(xiàn)AOP的一個重要機制,織人的用程序的狀態(tài).它通過控制器來取得視圖中的實現(xiàn)機制基本上可以分為兩類:靜態(tài)織人與動對象或者更新視圖;視圖用來實現(xiàn)模型的外觀,態(tài)織人.靜態(tài)織人是指在程序編譯時就在功能代表流向用戶的數(shù)據(jù).當(dāng)模型發(fā)生改變時,它能模塊代碼中的適當(dāng)位置插人方面模塊代碼,從夠得到通知,并且通過查詢來顯示這種改變;控而形成混合編碼;靜
7、態(tài)織人時,方面模塊代碼在制器將模型和視圖聯(lián)系在一起,定義用戶界面程序運行前已被內(nèi)聯(lián)至功能模塊代碼,因此代對用戶輸人的響應(yīng)方式,負(fù)責(zé)把用戶的動作轉(zhuǎn)碼可以被優(yōu)化,從而使織人產(chǎn)生的開銷最小化成針對模型的操作,模型通過更新視圖的數(shù)據(jù)動態(tài)織人是指在程序運行時根據(jù)上下文來決定來反映數(shù)據(jù)的變化,三者之間的關(guān)系如圖1所調(diào)用方面模塊代碼,包括它們的先后順序、增加示[1〕.或刪除一個方面模塊等等現(xiàn)在實現(xiàn)AOP的主要項目,采用靜態(tài)織人方式的有:Aspectj[0i(創(chuàng)建于XeroxPARC項目,發(fā)展時間長,比較成熟,但其語法過于復(fù)雜并需要專門的Java編
8、譯器);采用動態(tài)織人方式的有:Jboss,Nanning,印ringAop,Aspectwerkz等.AOP用來對系統(tǒng)中的橫切關(guān)注點進行處理,使橫切關(guān)注點可模塊化,促進功能模塊與方—方法調(diào)用-州卜面模塊彼此的復(fù)用WEB應(yīng)用開發(fā)的業(yè)務(wù)層