@SpringBootApplication注解是spring boot启动类上面需要标注的,而这个注解其实是这三个注解的组合
@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
其中最重要的当属@EnableAutoConfiguration注解了。这个注解内又有这么一行注解
@Import(AutoConfigurationImportSelector.class)
为spring容器引入了AutoConfigurationImportSelector这个类,这个类内部有一个很重要的方法叫selectImports,也就是这个方法将所有可能有的自动配置类加载到了spring内,依次进入方法:getAutoConfigurationEntry、getCandidateConfigurations、SpringFactoriesLoader.loadFactoryNames、loadSpringFactories,就到达了最底层获取自动配置类的代码。
从@EnableAutoConfiguration注解的import的AutoConfigurationImportSelector类进入loadFactoryNames方法时,会从META-INF/spring.factories文件获取key为”org.springframework.boot.autoconfigure.EnableAutoConfiguration”的value
然后spring就知道分别遍历这127个自动配置类,进行下一步的自动配置动作了。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2982