@SpringBootApplication自动配置原理

@EnableAutoConfiguration 是核心,他会调用一个@Import注解。我们已知Import自动配置得实现是通过创建ImportSelector
接口的实现类并重写里面selectImports方法在里面返回一个字符串数组最后通过@Import注解调用实现类.class的方法实现自动配置。而@EnableAutoConfiguration会创建一个名为
AutoConfigurationImportSelector的实现类并重写里面的selectImports方法,然后接下来就要想办法拿到封装了需要注入容器的类的全限定名称,而在selectImports方法内最终会去调用SpringFactoriesLoader.loadFactoryNames去扫描去扫描 META-INF/spring.factories 文件中名称为EnableAutoConfiguation对应的字符串列表,还有会扫描 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件中所有信息,加载进内存封装成一个数组,最后会根据各种条件【起步依赖、@Conditional相关注解】进行过滤找到匹配条件的全类名,并封装成字符串数组到内存中。

posted @ 2025-01-20 08:21  人生何处不青山啊  阅读(11)  评论(0)    收藏  举报