配置类增强流程图
如果一个配置类是Full模式,那么它就需要被CGLIB字节码提升。增强动作委托给enhanceConfigurationClasses(beanFactory)
去完成。
以上是引导/调度的流程图,下面对字节码增强、实际拦截实现流程进行细分描述。
生成增强子类字节码流程图
针对于Full模式配置类的字节码生成,委托给ConfigurationClassEnhancer
增强器去完成,最终得到一个CGLIB提升过的子类Class字节码对象。
字节码实际是由Enhancer生成,就不用再深入了,那属于CGLIB(甚至ASM)的范畴,很容易头晕,也并无必要。
拦截器执行流程图
拦截器是完成增强实际逻辑的核心部件,因此它的执行流程需要引起重视。一共有两个“有用”的拦截器,分别画出。
BeanFactoryAwareMethodInterceptor拦截流程图
拦截setBeanFactory()方法的执行
BeanMethodInterceptor拦截流程图
拦截@Bean
方法的执行
总结
本文作为公众号首个专栏Spring配置类的总结篇,主要是对核心处理流程画图阐述,适合需要快速理解的白嫖党,毕竟面试最喜欢问的就是让你说说执行流程之类的,因此实用性还是蛮高的,以后的专栏均会仿造此套路来玩。
关于Spring配置类这个专栏到这就全部结束了,在此也多谢各位在这期间给我的反馈,让我确定以及肯定了这么坚持下去是有意义的,是被支持的,是能够帮助到同仁们的。我公众号定位为专栏式学习,拒绝浅尝遏止,诚邀你的关注,一起进步。