Spring AOP基本概念
AOP定义
AOP基本术语
- 切面( Aspect ):一个能横切多个对象的模块化的关注点。对Spring AOP来说,切面就是普通的类(基于模式)或使用
@Aspect
注解的类。 - 连接点( Joint Point ):程序执行过程中的某个点。对Spring AOP来说,连接点就是方法的执行。
- 通知( Advice ):切面在某个连接点上执行的动作。
- 切入点( PointCut ):匹配连接点的断言。
- 引入( Introduction ):为现有类型添加额外的方法或域。
- 目标对象( Target object ):被一个或多个切面通知的对象,也称为 被通知对象 。因为Spring AOP由运行时代理实现,所以该对象总是一个被代理对象。
- AOP代理( AOP proxy ):为了实现切面契约(通知方法执行等),而由AOP框架创建的对象。在Spring框架中,AOP代理可以用JDK动态代理或CGLIB代理实现。
- 织入( Weaving ):将切面与其他应用类型或对象连接起来,并创建被通知对象。Spring AOP在运行时执行织入操作。
通知类型
- 前置通知( Before Advice ):在连接点之前执行的通知,它不会阻止连接点之前的执行流程(除非抛出异常)。
- 返回通知( After returning Advice ):在连接点正常完成后执行的通知。
- 异常通知( After throwing Advice ):在方法因抛出异常而退出后执行的通知。
- 最终通知( After (finally) Advice ):在连接点不管因何种原因退出后执行的通知。
- 环绕通知( Around Advice ):环绕连接点(比如方法调用)的通知。环绕通知是最常用的通知类型。