当前位置:  编程语言>java/jsp

Spring 2.0 的AOP介绍及其通知类型

 
    发布时间:2014-2-8  


    本文导语: Spring 2.0的AOP 在Spring 2.0中最激动人心的增强之一是关于Spring AOP,它变得更加便于使用而且更加强大,主要是通过复杂而成熟的AspectJ语言的支持功能来实现,而同时保留纯的基于代理的Java运行时。Spring 2.0的AOP提供给我们一...

Spring 2.0的AOP

  在Spring 2.0中最激动人心的增强之一是关于Spring AOP,它变得更加便于使用而且更加强大,主要是通过复杂而成熟的AspectJ语言的支持功能来实现,而同时保留纯的基于代理Java运行时。Spring 2.0的AOP提供给我们一种新的思考程序结构的方法,能够解决很多纯OOP无法解决的问题——让我们能够在一个模块中实现某些需求,而不是以发散的方式实现。Spring 2.0允许用户选择使用基于模式或@AspectJ注解的方式来自定义切面。这两种风格都支持所有类型的通知(advice)和AspectJ的切入点语言,虽然实际上仍然使用Spring AOP进行织入(Weaving)。

Spring 2.0 的AOP在Spring Framework中的作用

  Spring 2.0的AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理允许用户实现自定义切面,用AOP来完善OOP的使用。

Spring 2.0 的AOP通知类型:

Spring 2.0的AOP前置通知(Before advice):在某连接点之前执行的通知,但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)。

Spring 2.0的AOP后置通知(After returning advice):在某连接点正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。

Spring 2.0的AOP异常通知(After throwing advice):在方法抛出异常退出时执行的通知。

Spring 2.0的AOP最终通知(After (finally) advice):当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。

Spring 2.0的AOP环绕通知(Around Advice):包围一个连接点的通知,如方法调用。这是最强大的一种通知类型。环绕通知可以在方法调用前后完成自定义的行为。它也会选择是否继续执行连接点或直接返回它自己的返回值或抛出异常来结束执行。环绕通知是最常用的通知类型。和AspectJ一样,Spring提供所有类型的通知,我们推荐你使用尽可能简单的通知型来实现需要的功能。例如,如果你只是需要一个方法的返回值来更新缓存,最好使用后置通知而不是环绕通知,尽管环绕通知也能完成同样的事情。用最合适的通知类型可以使得编程模型变得简单,并且能够避免很多潜在的错误。比如,你不需要在JoinPoint上调用用于环绕通知的proceed()方法,就不会有调用的问题。在Spring 2.0中,所有的通知参数都是静态类型,因此你可以使用合适的类型(例如一个方法执行后的返回值类型)作为通知的参数而不是使用Object数组通过切入点匹配连接点的概念是AOP的关键,这使得AOP不同于其它仅仅提供拦截功能的旧技术。 切入点使得通知可以独立对应到面向对象的层次结构中。例如,一个提供声明式事务管理 的环绕通知可以被应用到一组横跨多个169IT-IT技术资讯 iis7站长之家的方法上(例如服务层的所有业务操作)。

  • 本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:Spring 2.0 的AOP介绍及其通知类型
相关文章推荐:
  • java命名空间javax.swing类spring的类成员方法: minus定义及介绍
  • Spring消息通信 Spring Integration
  • java命名空间javax.swing类spring的类成员方法: max定义及介绍
  • Spring社交扩展框架 Spring Social
  • java命名空间javax.swing类spring的类成员方法: unset定义及介绍
  • Spring 同步解决方案 Spring Sync
  • java命名空间javax.swing类spring的类成员方法: constant定义及介绍
  • 可视化Spring开发插件 Spring IDE
  • java命名空间javax.swing类spring的类成员方法: scale定义及介绍
  • Spring远程服务编程框架 Spring Remoting
  • java命名空间javax.swing类spring的类成员方法: getpreferredvalue定义及介绍
  • Spring安全框架 Spring Security
  • java命名空间javax.swing类spring的类成员方法: getmaximumvalue定义及介绍
  • 读取spring配置文件的方法(spring读取资源文件)
  • java命名空间javax.swing类spring的类成员方法: sum定义及介绍
  • Spring Tool Suite
  • java命名空间javax.swing类spring的类成员方法: getvalue定义及介绍
  • Spring4Me
  • java命名空间javax.swing类spring的类成员方法: width定义及介绍
  • spring-all
  • java命名空间javax.swing类spring的类成员方法: height定义及介绍
  • Spring Workflow


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3