SpringAOP常用术语

SpringAOP框架中,涉及以下常用术语

切面Aspect

切面是指封装横切到系统功能的类。(如事务处理类)


连接点Joinpoint

连接点是程序运行中的一些时间点,如方法的调用或异常的抛出


切入点Pointcut

切入点是指那些需要处理的连接点。在SpringAOP中,所有的方法执行都是连接点,而切入点是一个描述信息,它修饰的是连接点,通过切入点确定哪些连接点需要被处理。


通知Advise (增强处理)

通知是由切面添加到特定的连接点的一段代码,即在定义好的切入点处所要执行的代码。
通知是切面的具体实现。可以理解为切面开启后切面的方法。
根据Spring中通知在目标类方法的连接点位置,可以分为6种类型:

  • 环绕通知

在目标方法执行前 和执行后 实施增强,可以应用于日志记录、事务处理等功能。

  • 前置通知

在目标方法执行前 实施增强,可以应用于权限管理等功能。

  • 后置返回通知

在目标方法执行后 实施增强,可以 应用于关闭流、删除临时文件等功能。

  • 后置(最终)通知

在目标方法执行后 实施增强,与后置返回通知不同的是,不管是否发生异常都要执行该通知,可以应用与释放资源

  • 异常通知

在方法抛出异常后实施增强,可以应用于处理异常、记录日志等功能。

  • 引入通知

在目标类中添加一些新的方法和属性,可以应用于修改目标类(增强类)。


引入Introduction

引入,允许在现有的实现类中添加自定义的方法和属性


目标对象 TargetObject

目标对象是指所有被通知的对象。
若AOP框架使用运行时代理(即动态的AOP)来实现切面,那么通知对象总是一个代理对象


代理Proxy

代理是通知应用到目标对象之后,被动态创建的对象。


植入(织入)Weaving

织入,是将切面代码插入目标对象上,从而生成代理对象的过程。
AOP织入由3种方式:

  • 编译器织入 (需要有特殊的Java编译器)
  • 类装载器织入 (需要有特殊的类装载器)
  • 动态代理织入 (在运行期为目标类添加通知生成子类的方式;SpringAOP默认采用动态代理织入;而AspectJ采用编译器织入和类装载器织入)
posted @ 2022-08-21 10:01  silent_fall  阅读(193)  评论(0)    收藏  举报