AOP
AOP:面向切面编程。
使用
相关概念
核心
AOP 通过切点表达式定位目标对象的方法(切入点),将通知动态织入目标方法,形成切面,并通过动态代理技术生成代理对象,实现对目标对象方法的无侵入增强。
实现原理-AOP集成进Bean生命周期
利用 BeanPostProcessor
实现的 AOP。
DefaultAdvisorAutoProxyCreator
实现了 BeanPostProcessor
接口,自定义 postProcessAfterInitialization
方法,对符合条件的 Bean 进行 AOP 加工。
当 Bean 的初始化阶段进入 BeanPostProcessor
的后置处理阶段时:
- 首先加载程序的所有 AOP 相关配置,获取所有 Advisor。
- 遍历每一个 Advisor,判断当前 Bean 是否与切点表达式匹配。
- 如果匹配,则构建配置对象,调用动态代理方法,生成动态代理对象并返回。