让我们首先定义一些核心的AOP概念和术语。这些术语并非特定于Spring。不幸的是,AOP术语并不是特别直观。然而,如果Spring使用自己的术语,则会更加令人困惑。
Spring AOP包含以下几种通知类型:
Around advice是最普遍的advice。由于Spring AOP和AspectJ一样提供了一系列完整的通知类型,我们建议你使用功能最差的通知类型来实现所需的行为。例如,如果只需要使用方法的返回值更新缓存,那么最好实现after returning advice ,而不是around advice,尽管around advice可以完成相同的事情。使用最具体的通知类型提供了一个更简单的编程模型,并且错误的可能性更小。例如,你不需要在用于around通知的joinpoint上调用proceed()方法,因此,你不会调用失败。
所有通知参数都是静态类型的,因此你可以使用适当类型的通知参数(例如,方法执行返回值的类型)而不是对象数组。
切入点匹配的连接点概念是AOP的关键,它将AOP与只提供拦截的旧技术区分开来。切入点使通知能够独立于面向对象的层次结构作为目标。例如,你可以将一个around通知应用到一组跨越多个对象的方法(例如服务层中的所有业务操作)上,从而提供声明性事务管理。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8