SpringAOP概念

一、概念

  1. Aspect:切面,是封装切入点和通知的功能类。
  2. PointCut:切入点,定义或识别被增强功能的声明,不具体指某个类或方法,描述的是一种类或方法的范围,在切面中可以看做核心点的引用或标记。
  3. JoinPoint:连接点,就是业务核心关注点,实际被增强的目标功能点,简称核心点。
  4. Advice:给目标点绑定的附加功能,可以在前期、后期、环绕、异常、返回时绑定,在增强方法中都可以获取核心点,可以读写其参数和返回值等操作,增强方式可以使用下列注解声明:

@Before:绑定到核心点执行前
@After:绑定到核心点后执行,核心点遇到异常【仍】会执行。
@Around:
@AfterReturning:在核心点正常执行通过之后,但在After之前执行,但如果核心点遇到异常此增强将不执行。
@AfterThrowing:当核心点执行过程中出现异常就会执行这个增强。

  1. Target:业务核心关注点所在的类。
  2. Weave:织入,表示通知被绑定到目标上,生成代理类的过程。

二、机制

  1. spring使用了AopProxy接口,提供了jdk和cglib两种实现方式。
  2. 代理类和代理对象是在ioc容器初始化时生成的。借助spring bean的后置处理器,能将目标类的对象经过改变,包装为代理对象。
原文地址:https://www.cnblogs.com/JaxYoun/p/12597701.html