预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

南京大学学报(自然科学) 第41卷Vol.41 2005年10月JOURNALOFNANJINGUNIVERSITYOct.,2005 (NATURALSCIENCES) 基于AOP与MVC模式的Web应用 架构的设计与实现’ 赵成勇,周南,张晓泉 (中国农业大学网络中心,北京,100083) 摘要:MVC模式在WEB应用架构中得到广泛的应用,但其没有涉及架构业务层的可扩展性问题. 将面向方面编程的思想引进WEB应用架构的设计,可以增强架构业务层的可扩展性和稳定性.给出使 用MVC模式并结合AOP思想来构建的一种WEB应用架构,并使用3个优秀的开源项目(STRUTS, ASPECTWERKZ,HIBERNATE)对该架构予以实现 关键词:MVC模式,AOP,WEB应用架构 中圈分类号:TP311 DesignandimplementationofWebApplication ArchitecturebasedonMVCPatternandAOP ZhaoCheng-Yang,ZhouNan,ZkangXiao-Quan (NetworkCenter,ChinaAgricultureUniversity,Beijing,100083,China) Abstract:MVCPaternisusedinWebApplication八rchitecturewidely,butitdoesnotrefertotheextensibilityofthe architecturesbusinesslayer.IntroducingAOPintothedesignofWebApplicationArchitecturecanimprovethe extensibilityandstabilityofthebusinesslayer.ThispaperintroducesaWebApplicationArchitecturebuiltonMVC PatternandAOP,andthengivesanexampleimplementationwiththreefineopenstumeprojects. Keywords:MVCPattern,AOP,webapplicationarchitecture 随着Internet发展的日渐成熟,WEB应用向方面编程)思想,保证架构业务层具有良好的 得到越来越多人的认可,WEB应用软件的开发可扩展性,从而使得采用这种架构的软件系统 从架构层次上可以分为表示层,业务层和持久具有较强的可扩展性、稳定性和可维护性. 层一个灵活的WEB应用架构应该能够降低 1MVC模式 这三层之间的藕合,并保证每个层次内部具有 良好的可扩展性.本文提出一种Wel〕应用架MVC最初是美国施乐公司在上世纪80年 构,一方面使用MVC(Model一View-代为编程语言Smalltalk280发明的一种软件设 Controler,模型一视图一控制器)模式从架构计模式.在该模型中应用程序被分为3个组成 层次上保证各层之间的低辆合,另一方面结合部分:模型(Model),视图(View),控制器 应用AOP(Aspect一OrientedProgramming,面(Controller). ·基金项目:国家科技攻关计划重次项目(2003BA808A14) 第41卷赵成勇等:基于AOP与MVC模式的Web应用架构的设计与实现719 模型包含了应用程序功能的核心,提供使点的目的. 用应用程序功能的方法和途径,集中体现了应织人是实现AOP的一个重要机制,织人的 用程序的状态.它通过控制器来取得视图中的实现机制基本上可以分为两类:静态织人与动 对象或者更新视图;视图用来实现模型的外观,态织人.静态织人是指在程序编译时就在功能 代表流向用户的数据.当模型发生改变时,它能模块代码中的适当位置插人方面模块代码,从 够得到通知,并且通过查询来显示这种改变;控而形成混合编码;静态织人时,方面模块代码在 制器将模型和视图联系在一起,定义用户界面程序运行前已被内联至功能模块代码,因此代 对用户输人的响应方式,负责把用户的动作转码可以被优化,从而使织人产生的开销最小化 成针对模型的操作,模型通过更新视图的数据动态织人是指在程序运行时根据上下文来决定 来反映数据的变化,三者之间的关系如图1所调用方面模块代码,包括它们的先后顺序、增加 示[1〕.或删除一个方面模块等等现在实现AOP的主 要项目,采用静态织人方式的有:Aspectj[0i(创 建于XeroxPARC项目,发展时间长,比较成 熟,但其语法过于复杂并需要专门的Java编译 器);采用动态织人方式的有:Jboss,Nanning, 印ringAop,Aspectwerkz等. AO