Spring 对AOP具体实现.pptVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring 对AOP的具体实现 本讲的简要回顾 * Spring 对AOP的具体实现 杨少波 trainict@ 在本讲您能了解如下内容 Spring AOP的特性及具体实现 Spring AOP是基于动态AOP机制实现的 应用Spring AOP的开发过程 Spring AOP的应用示例 1、Spring 中的AOP (1)Spring AOP是对AOP的一种轻量级的实现 Spring AOP是通过IoC模式来实现的AOP,并且是通过动态代理来实现的。业务功能类为POJO并且可以在容器之外执行 (2)Spring中为什么要提供对 AOP的具体实现 基于传统的J2EE的应用系统通常严重依赖于通过容器的JNDI才可获得容器所提供的服务----这意味着我们需要大量直接的JNDI查找、或者要使用Service Locator模式。 Spring AOP简化了“容器提供基础功能服务”的具体实现---同样能够提供JDBC、JMS和JTA之类的常见服务的支持,但只需要在XML文件中进行简单的配置实现 利用IoC可以实现由容器控制对象的生命期管理 利用AoP可以实现由容器提供基础功能服务 2、Spring AOP 和 Spring IOC 两者的关系 (1)Spring IoC容器并不需要依赖于AOP 这意味着如果我们不需要使用AOP,当然AOP也就不需要被使用。 但Spring AOP完善了Spring IoC,从而使Spring框架成为一个有效的中间件的解决方案。 (2)Spring AOP通过IoC模式来实现AOP Spring AOP作为一种非侵略性的、轻型的AOP框架----这也就是Spring AOP与其它类型的AOP的最大的不同点。 Spring AOP的功能通常是和Spring IoC容器联合使用的。 并且Advice(通知)和Pointcut(连接点)本身都由Spring IoC 容器来管理并动态地注入。 这些是Spring AOP的特点 3、重点理解Spring AOP中的三个概念 (1)JoinpointPointcut(连接点或者切入点) (2)advice(通知) 它就是我们想要向别的程序内部的不同 (3)advisor(通知者或者通知的装配器) 它其实是pointcut和advice的装配器,是将advice的代码注入到系统主程序中预定义位置的代码---它一般包含一个通知对象和与之关联的切入点表达式。 它定义了需要注入“advice(通知)”的代码位置-----通常是某个特定的类中的一个或者多个public方法名称。 的地方注入的程序代码----从而实现我们的附加功能。 4、Spring AOP是基于动态代理机制实现的 (1)Spring默认使用的是基于Java Dynamic Proxy模式实现---但它只能够实现接口的代理 如果目标对象实现了一个或多个接口暴露的方法,Spring将使用JDK的java.lang.reflect.Proxy类创建代理----这样任何的接口或一堆接口都能被代理。 (2)动态代理实现的优点 动态代理模式的核心就在于具体的代理类代码中不出现与具体的被代理的目标相关联的接口或者目标实现类的引用,因此代理类可以适用于多个不同接口的代理实现。 (3)应用动态代理时对应用的要求 要求其所代理的目标对象一定要实现某个接口----面向接口编程而不是面向类编程 (4)动态代理实现的示例 请见文档中的示例说明 5、Spring AOP通过基于CGLIB实现对类进行AOP代理 6、使用Spring AOP的一般开发过程 因此spring不仅可以对接口进行代理,也能够实现对类进行代理 (1)在 proxy 的配置中增加 property name=proxyTargetClass valuetrue/value /property (2)同时保证 cglib-full-2.0.2.jar 在classpath路经上 注意:对接口创建代理优于对类创建代理,因为这样会产生更加松耦合的系统;标记为 final 的方法是不能被通知的,因为 Spring 在实现的时候是为目标类产生子类。 (1)创建通知Advice类---实现某个接口 (2)在Spring 中定义切入点(在*.xml中定义出) (3)在Spring的*.xml文件中添加代理对象和advisor的定义(由Spring来提供) 7、Spring中AOP的实现示例-----实现Around通知 1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者” 3、子曰:“三人

文档评论(0)

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

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

1亿VIP精品文档

相关文档