栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringAOP原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringAOP原理

SpringAOP原理

SpringAOP原理主要分为三个部分:

  1. 创建代理类
  2. 代码织入
  3. 通知回调
1. 创建代理类

AOP的入口在Spring依赖注入之后的初始化方法中(initializeBean),在Bean初始化完成之后,会调用BeanPostProcessor的后置处理器方法,该处理器的实现类AbstractAutoProxyCreator负责代理类的创建。该类首先会获得Spring中所有的通知Advice,并根据当前对象进行切入点表达式的匹配,如果能够匹配上则表示当前对象需要增强。在创建代理过程中会判断当前对象是否满足JDK动态代理的条件,如果不满足则通过代理工厂类生成CGLib动态代理。

2. 代码织入

通知代码的织入主要在动态代理类中的invoke方法中,该方法会根据当前要执行的Method方法,去获取对应的Advice通知,并将Advice封装成MethodInterceptor对象,最终返回一个方法拦截器链。然后根据Method与拦截器链封装成MethodInvocation对象。

3. 通知回调

MethodInvocation对象通过调用proceed方法执行方法的调用,proceed方法中通过游标循环执行已经排序好的拦截器方法,不同的拦截器方法在不同的时机进行调用,最终完成代码功能的增强。

时序图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号