目录:
Spring - AOP - 术语
1. 目标对象(Target)
-
目标对象指将要被增强的对象。即包含主业务逻辑的类的对象。
要增强的对象(通常会有很多个)
2. 切面(Aspect)
-
指关注点模块化,这个关注点可能会横切多个对象。事务管理是企业级 Java 应用中有关横切关注点的例子。在 Spring AOP 中,切面可以使用通用类基于模式的方式 (schema-basedapproach) 或者在普通类中以 @Aspect注解(@AspectJ注解方式) 来实现。
要增强的代码放入那个类就叫切面类,
@Aspect
3. 通知(Advice)
-
在切面的某个特定的连接点上执行的动作。通知有多种类型,包括 “around”,“before” and “after” 等等。通知的类型将在后面的章节进行讨论。许多 AOP 框架,包括 Spring 在内,都是以拦截器做通知模型的,并维护着一个以连接点为中心的拦截器链。
用来放增强的代码的那个方法:
- 环绕通知
@Around
:可以把代码增强在目标方法的任意地方,更通用 - 前置通知
@Before
:目标方法之前执行 - 后置通知
@After
:目标方法之后执行 - 异常通知
@AfterThrowing
:目标方法出现了异常执行 - 返回通知
@AfterReturning
:目标方法返回值执行
- 环绕通知
4. 切点(Pointcut)
-
匹配连接点的断言。通知和切点表达式相关联,并在满足这个切点的连接点上运行(例如,当执行某个特定名称的方法时)。切点表达式如何和连接点匹配是 AOP 的核心:Spring 默认使用 AspectJ 切点语义。
增强到目标方法具体匹配,切点表达式
5. 连接点(Join point)
-
在Spring AOP中,一个连接点总是代表一个方法的执行,其实就代表增强的方法。
通知和目标方法的一个桥梁要获取目标方法的信息,就得通过
JoinPoint
6. 顾问(Advisor)
-
顾问是 Advice 的一种包装体现,Advisor 是 Pointcut 以及 Advice 的一个结合,用来管理 Advice 和 Pointcut 。应用无需关心.
源码中的体现,会封装切点和通知
7. 织入(Weaving)
- 将通知切入连接点的过程叫织入