Spring 2.0的AOPhtml
在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通知类型:spa
Spring 2.0的AOP前置通知(Before advice):在某链接点以前执行的通知,但这个通知不能阻止链接点以前的执行流程(除非它抛出一个异常)。代理
Spring 2.0的AOP后置通知(After returning advice):在某链接点正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。htm
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不一样于其它仅仅提供拦截功能的旧技术。 切入点使得通知可以独立对应到面向对象的层次结构中。例如,一个提供声明式事务管理 的环绕通知能够被应用到一组横跨多个对象的方法上(例如服务层的全部业务操做)。get
文章转载自:[169IT-最新最全的IT资讯]
本文标题:Spring 2.0 的AOP介绍及其通知类型