Spring AOP基本概念

时间:2023-03-08 22:21:21


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 ):环绕连接点(比如方法调用)的通知。环绕通知是最常用的通知类型。