AOP的专业术语

1.连接点(Joinpoint)

特定点是程序执行的某个特定位置,如类开始初始化前、类初始化后、类的某个方法调用前/后、方法抛出异常后。一个类或者一段程序代码拥有一些具有边界性质的特定点,这些特定点就称为 ”连接点“ 。

Spring 仅支持方法的连接点,即仅能在方法调用前、方法调用后、方法抛出异常时、方法调用前后这些程序点织入增强。

2.切点(Pointcut)

每个程序类都有多个连接点,如一个类拥有两个方法,这两个方法都是连接点。而在众多个连接点中,如何定位某些感兴趣的连接点呢? AOP 就是用过 “切点” 定位特定连接点。

打个比方,连接点相当于数据库中的记录,而切点就相当于的查询条件;一个切点可以匹配多个连接点。

在 Spring 中,切点通过 org.springframework.aop.Pontcut 接口进行扫描,使用类和方法作为连接点的查询条件。

3.增强(Advice)

增强是织入目标类连接点上的一段程序代码。也就是在切点上增加的业务逻辑代码。

4.目标对象(Target)

增强逻辑的织入目标类。

5.引介(Introduction)

引介是一种特殊的增强,它为类添加一些属性和方法。

6.织入(Weaving)

织入是将增强添加到目标类的具体连接点上的过程。

7.代理(Proxy)

一个类被 AOP 织入增强后,就产生了一个结果类。它是融合了原类和增强逻辑的代理类。

8.切面(Aspect)

切面由切点和增强(引介)组成,它既包括横切逻辑的定义,也包括连接点的定义。

Spring AOP 就是负责实施切面的框架,它将切面所定义的横切逻辑织入切面所指定连接点中。


AOP 的工作重心在于如何将增强应用于目标对象的连接点上。这里包括两项工作:

  1. 如何通过切点和增强定位到连接点上;
  2. 如何在增强中编写切面的代码
posted @ 2021-07-08 17:39  乐子不痞  阅读(216)  评论(0编辑  收藏  举报
回到顶部