EnableAutoConfiguration / AutoConfigurationImportSelector

在spring-boot中@EnableAutoConfiguration 和 AutoConfigurationImportSelector是一对
@EnableAutoConfiguration用于声明加载spring.factories中EnableAutoConfiguration的实现
AutoConfigurationImportSelector 类则是实现这个加载逻辑

本章使用的知识点来自spring AbstraceApplicationContext refresh 里的invokeBeanFactoryPostProcessors 方法。 简单说一下这个处理跟@EnableAutoConfiguration的关系, 是因为invokeBeanFactoryPostProcessors处理注解@Configuration/@Component/@Import/@ImportResource/@ComponentScan; 刚好@EnableAutoConfiguration有@Import,所以触发了AutoConfigurationImportSelector的getAutoConfigurationEntry方法;

AutoConfigurationImportSelector.getAutoConfigurationEntry

该方法主要处理的事有
1、加载spring.factores中的EnableAutoConfiguration实现类;
2、排除配置EnableAutoConfiguration
3、过滤掉@ConditionXX不满足的EnableAutoConfiguration类

总结

spring-boot扩展了ImportSelector的实现,完成EnableAutoConfiguration实现类的加载。
spring-boot默认不开启EnableAutoConfiguration, 需要在mian类上加@EnableAutoConfiguration

你可能感兴趣的:(EnableAutoConfiguration / AutoConfigurationImportSelector)