您现在的位置是:首页 >其他 >Spring AOP实现原理网站首页其他

Spring AOP实现原理

小杨的博客 2023-06-09 20:00:03
简介Spring AOP实现原理

从入口 org.springframework.context.support.AbstractApplicationContext#refresh 开始看

找到Bean的创建方法进入:

再进入详细方法:

 找到getBean(beanName):

找到doGetBean(xxx,xxx,xxx,xxx);

 

找到实际的Bean创建方法createBean(beanName, mdb, args);可以非常明显的看到,Bean就是通过Proxy的方式获取的。

 

继续找下去resolveBeforeInstantiation(beanName, mbdToUse):

 

这时候就看到了 BeanPostProcessor#postProcessBeforeInitialization BeanPostProcessor#postProcessAfterInitialization 两个经典中的经典了,随便找一个进去详细看下(这里我直接看applyBeanPostProcessorsBeforeInstantiation):

继续,可以非常清楚的看到(AbstractAutoProxyCreator):

进入可以看到createProxy()

此时,我们就找到CreateProxy的地方了: 

 继续看到经典的八股文: 

 经典之Cglib动态代理JDK动态代理

相信这一行代码Proxy.newProxyInstance(classLoader, proxiedInterfaces, this);大伙儿都很熟悉吧~。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。