Skip to content

AOP

AOP:面向切面编程。

使用

相关概念

AOP相关概念

核心

AOP 通过切点表达式定位目标对象的方法(切入点),将通知动态织入目标方法,形成切面,并通过动态代理技术生成代理对象,实现对目标对象方法的无侵入增强。

实现原理-AOP集成进Bean生命周期

利用 BeanPostProcessor 实现的 AOP。

DefaultAdvisorAutoProxyCreator 实现了 BeanPostProcessor 接口,自定义 postProcessAfterInitialization 方法,对符合条件的 Bean 进行 AOP 加工。

当 Bean 的初始化阶段进入 BeanPostProcessor 的后置处理阶段时:

  • 首先加载程序的所有 AOP 相关配置,获取所有 Advisor。
  • 遍历每一个 Advisor,判断当前 Bean 是否与切点表达式匹配。
  • 如果匹配,则构建配置对象,调用动态代理方法,生成动态代理对象并返回。