SpringAOP常用术语
SpringAOP框架中,涉及以下常用术语
切面Aspect
切面是指封装横切到系统功能的类。(如事务处理类)
连接点Joinpoint
连接点是程序运行中的一些时间点,如方法的调用或异常的抛出
切入点Pointcut
切入点是指那些需要处理的连接点。在SpringAOP中,所有的方法执行都是连接点,而切入点是一个描述信息,它修饰的是连接点,通过切入点确定哪些连接点需要被处理。
通知Advise (增强处理)
通知是由切面添加到特定的连接点的一段代码,即在定义好的切入点处所要执行的代码。
通知是切面的具体实现。可以理解为切面开启后切面的方法。
根据Spring中通知在目标类方法的连接点位置,可以分为6种类型:
- 环绕通知
在目标方法执行前 和执行后 实施增强,可以应用于日志记录、事务处理等功能。
- 前置通知
在目标方法执行前 实施增强,可以应用于权限管理等功能。
- 后置返回通知
在目标方法执行后 实施增强,可以 应用于关闭流、删除临时文件等功能。
- 后置(最终)通知
在目标方法执行后 实施增强,与后置返回通知不同的是,不管是否发生异常都要执行该通知,可以应用与释放资源
- 异常通知
在方法抛出异常后实施增强,可以应用于处理异常、记录日志等功能。
- 引入通知
在目标类中添加一些新的方法和属性,可以应用于修改目标类(增强类)。
引入Introduction
引入,允许在现有的实现类中添加自定义的方法和属性
目标对象 TargetObject
目标对象是指所有被通知的对象。
若AOP框架使用运行时代理(即动态的AOP)来实现切面,那么通知对象总是一个代理对象
代理Proxy
代理是通知应用到目标对象之后,被动态创建的对象。
植入(织入)Weaving
织入,是将切面代码插入目标对象上,从而生成代理对象的过程。
AOP织入由3种方式:
- 编译器织入 (需要有特殊的Java编译器)
- 类装载器织入 (需要有特殊的类装载器)
- 动态代理织入 (在运行期为目标类添加通知生成子类的方式;SpringAOP默认采用动态代理织入;而AspectJ采用编译器织入和类装载器织入)

浙公网安备 33010602011771号