首页 > 技术文章 > @SpringbootApplication是怎么被解析的?

jovic 2021-04-05 08:50 原文

我们知道,一般在Springboot的启动类里面都会有SpringBootApplication注解:

图片

然后在启动方法中传入启动类:

图片

那么这个启动类传入进去按道理应该是在适当的时候找到需要的注解并进行解析吧...经过一段研究,最终在ConfigurationClassParser#collectImports中找到了答案,collectImports这个方法是递归找@Import注解的,并且传进来的第一个注解就是启动类:

图片

把@Import注解收集出来了之后,继续看processImports方法会处理ImportSelector,把@Import注解找到和对应的Selector找到了之后,继续往下看

ConfigurationClassParser#processDeferredImportSelectors#getImports:

图片

这里会调用AutoConfigurationImportSelector的selectImports方法,这里会找到所有符合条件的@Configuration配置类:

图片

配置类Import完成后会触发一个事件fireAutoConfigurationImportEvents,不太知道这些事件都处理了什么,暂时先留个疑问

 

更多请了解一米源码公众号或https://itproject-manager.com/

推荐阅读