第7章 项目开发:日志输出与事务管理功能.pptVIP

第7章 项目开发:日志输出与事务管理功能.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 项目开发:日志输出与事务管理功能

;;;;;;;;;;;IoC以外Spring的另一个关键的组件就是AOP框架。尽管如此,Spring IoC容器并不依赖于AOP,这意味着可以自由选择是否使用AOP,AOP提供强大的中间件解决方案,这使得Spring IoC容器更加完善。 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。 除了类(classes)以外,AOP提供了 切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。(这些关注点术语通常称作横切(crosscutting)关注点。) ;AOP是一种流行的编程模型; AOP的编程思想与OOP不同,是对OOP的一种强有力的补充; 通过AOP,能更好地实现模块化结构,或者能动态地为系统增加新功能而不影响原系统的结构.;概述 AOP 允许开发者动态地修改OOP定义的静态模型,即不用修改原来的OO模型,甚至可以不修改OO代码本身,即可完成对横切面问题的解决。 比如,将系统中处理日志、安全性、事务及其他企业级服务集中放置在一个地方。因此AOP使得OOP中的重复代码能够大范围减少。;Spring就是一个实现了AOP功能的IOC容器 ;Sping AOP基于IoC,是对OOP的有益补充. Sping AOP将应用系统分为两部分,核心业务逻辑及横向的通用逻辑,即切面(Aspect)。比如大型应用中涉及的持久化管理、事务管理、安全管理、日志管理和调试管理。 使用AOP可以将处理Aspect的代码注入主程序,AOP可以防止代码混乱。;AOP(Aspect-Oriented Programming,面向切面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许定义从上到下的关系,但并不适合定义从左到右的关系。 例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。 对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。;1.Cross-cutting concerns 如图7.1所示,原来的业务流程是很单纯的。;如图7.2所示,为了加入日志与安全检查等服务,类的程序代码中被硬生生地切入了相关的Logging、Security程序片段。 ;AOP(Aspect Oriented Programming)的背景知识 为满足整个企业应用某方面的需求,开发者(架构师)需要整理出系统的关注点,如下图形象地描述了关注点。;SpringAOP实现 Spring AOP使用纯Java实现。它不需要专门的编译过程, 不需要控制类装载器层次,因此它适用于J2EE web容器或应用服务器。 Spring目前仅支持使用方法调用作为连接点(join point). Spring的观点是属性拦截破坏了封装。 Spring实现AOP的方法跟其他的框架不同。Spring并不是要提供最完整的AOP实现(尽管Spring AOP有这个能力),相反的,它其实侧重于提供一种AOP实现和Spring IoC容器之间的整合,用于帮助解决在企业级开发中的常见问题。 Spring使用动态代理实现AOP技术。 ;现在的系统往往强调减小模块之间的耦合度,AOP 技术就是用来帮助实现这一目标的。 从某种角度上来讲“切面”是一个非常形象的描述,它好像在系统的功能之上横切一刀,要想让系统的功能继续,就必须先过了这个切面。 这些切面监视并拦截系统的行为,在某些(被指定的)行为执行之前或之后执行一些附加的任务(比如记录日志)。 而系统的功能流程(比如 Greeting)并不知道这些切面的存在,更不依赖于这些切面,这样就降低了系统模块之间的耦合度。 ;各种AOP实现切面的技术、框架、机制、手段可能不同,但是AOP技术的基本概念是相同的。包括以下7个术语: 连接点(join point) 切入点(cutpoint) 通知(advice) 引入(introduction) 目标对象(target object) 织入(weaving) 切面(Aspect);连接点(Joinpoint) 连接点指程序(目标对象)执行的某个点,如执行到某个方法、访问到某个成员变量、抛出某异常、装载某个类。在Spring AOP中,一个连接点总是表示一个方法的执行。 通常用连接点的强弱来衡量AOP实现的强弱。Aspect5实现的

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档