第四节 AOP术语
1、横切关注点
2、通知advice
3、连接点 joinpoint
4、切入点 pointcut
5、切面 aspect
6、目标 target
7、代理 proxy
8、织入 weave

第四节 AOP术语

1、横切关注点

从每个方法中抽取出来的同一类非核心业务。在同一个项目中,我们可以使用多个横切关注点对相关方法进行多个不同方面的增强。
这个概念不是语法层面天然存在的,而是根据附加功能的逻辑上的需要:有十个附加功能,就有十个横切关注点。
04.AOP术语 - 图1
./images
AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事务、异常等。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

2、通知advice

每一个横切关注点上要做的事情称为通知。通知需要写一个方法来实现。也被称为增强。

  • 前置通知:在被代理的目标方法前执行
  • 返回通知:在被代理的目标方法成功结束后执行(寿终正寝)
  • 异常通知:在被代理的目标方法异常结束后执行(死于非命)
  • 后置通知:在被代理的目标方法最终结束后执行(盖棺定论)
  • 环绕通知:使用try…catch…finally结构围绕整个被代理的目标方法,包括上面四种通知对应的所有位置

04.AOP术语 - 图2
./images

3、连接点 joinpoint

这也是一个纯逻辑概念,不是语法定义的。
指那些被拦截到的点。在 Spring 中,可以被动态代理拦截目标类的方法

4、切入点 pointcut

定位连接点的方式。
是一个表达式,比如execution( com.spring.service.impl..(..))。符合条件的每个方法都是一个具体的连接点。
类似Filter的过滤路径
1.
2. AdminFilter
3. /admin/

4.

5、切面 aspect

切入点和通知的结合。是一个类。
04.AOP术语 - 图3
./images

6、目标 target

被代理的目标对象。

7、代理 proxy

向目标对象应用通知之后创建的代理对象。

8、织入 weave

指把通知应用到目标上,生成代理对象的过程。可以在编译期织入,也可以在运行期织入,Spring采用后者。

上一节 回目录 下一节