网站大量收购独家精品文档,联系QQ:2885784924

Spring AOP课件.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring AOP课件

Spring-AOP Louis Young 功能模块化与面向过程 最早的功能模块化是把某些重复的或功能独立 IoC回顾 IoC就是利用容器通过XML配置描述把各种不同功能的模块组合成一个完整的业务逻辑流程. 其核心是:容器与XML描述. 其实现是:通过Java的反射实例化对象,管理对象,访问对象(定位). 其作用是:降低模块间的耦合度,达到模块复用,业务逻辑流程动态化,灵活化,可定制化,可扩展化. IoC与模块化 对模块化的概念抽象-切面 对模块化的概念抽象-连接点 AOP 在前面我们了解的的概念其实就是面向Aspect的.简称AOP. 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。 因为OOP面向的是以数据为中心的对象. AOP面向的是以功能为中心的模块.AOP的实现还是以OOP为手段. AOP具体实现 AspectJ (TM): 创建于Xerox PARC. 有近十年历史,成熟 缺点:过于复杂;破坏封装;需要专门的Java编译器。 动态AOP: 使用JDK的动态代理API或字节码Bytecode处理技术。 Spring 采用的是动态AOP. Spring中的AOP实现 Spring AOP用纯Java实现。它不需要专门的编译过程。Spring AOP不需要控制类装载器层次,因此它适用于J2EE web容器或应用服务器。 Spring实现AOP的方法跟其他的框架不同。Spring并不是要尝试提供最完整的AOP实现(尽管Spring AOP有这个能力), 相反的,它其实侧重于提供一种AOP实现和Spring IoC容器的整合,用于帮助解决在企业级开发中的常见问题。 Spring缺省使用J2SE 动态代理(dynamic proxies)来作为AOP的代理。这样任何接口都可以被代理。 Spring也支持使用CGLIB代理. 对于需要代理类而不是代理接口的时候CGLIB代理是很有必要的。 AOP与IoC Spring IoC容器并不依赖于AOP,这意味着你可以自由选择是否使用AOP. AOP提供强大的中间件解决方案,这使得Spring IoC容器更加完善。 AOP概念(一/二) 切面(Aspect): 一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。 连接点(Joinpoint): 在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。 在Spring AOP中,一个连接点 总是 代表一个方法的执行。 通知(Advice): 在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中包括“around”、“before”和“after”等通知。 切入点(Pointcut): 匹配连接点(Joinpoint)的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。 切入点表达式如何和连接点匹配是AOP的核心 AOP概念(二/二) 引入(Introduction): (也被称为内部类型声明(inter-type declaration))。声明额外的方法或者某个类型的字段。 Spring允许引入新的接口到任何被代理的对象。 目标对象(Target Object): 被一个或者多个切面(aspect)所通知(advise)的对象。也有人把它叫做 被通知(advised) 对象。 既然Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对象。 AOP代理(AOP Proxy): AOP框架创建的对象,用来实现切面契约(aspect contract)(包括通知方法执行等功能)。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。 织入(Weaving): 把切面(aspect)连接到其它的应用程序类型或者对象上,并创建一个被通知(advised)的对象。 这些可以在编译时(例如使用AspectJ编译器),类加载时和运行时完成。 Spring和其他纯Java AOP框架一样,在运行时完成织入。 AOP的目的 提供功能分离框架(模块化) 主要代码上分离业务逻辑实现与非业务逻辑实现. 可以降低两种代码的耦合性 . 从而达到代码重用和易于维护的目的 AOP与Java代理机制 AOP是一种思想,它和具体的实现技术无关。任何一种符合AOP思想的技术实现,都可以看作是AOP的实现。 JDK 1.3以后,Java提供了动态代理的机制。通过Java的动态代理机制,就可以很容易地实现AOP的思想。实际上Spring的AOP也是建立在Java的代理机制之上的

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档