springboot自动装配
- @SpringBootApplication 中含有
@EnableAutoConfiguration 开启自动配置 - @EnableAutoConfiguration 中含有
@Import({AutoConfigurationImportSelector.class}) - AutoConfigurationImportSelector.class 中含有
getAutoConfigurationEntry(
AutoConfigurationMetadata autoConfigurationMetadata,
AnnotationMetadata annotationMetadata) 用于加载 Spring Boot 配置的自动配置类 - 该方法中 new AutoConfigurationEntry(configurations, exclusions) 会筛选出有效的自动配置类
- 在各个配置类中,含有
@EnableConfigurationProperties(xxxProperties.class)启动指定类的xxxProperties功能,将配置文件中对应的值和xxxProperties 绑定起来;并把xxxProperties加入到 IOC 容器中。(@EnableConfigurationProperties=@ConfigurationProperties+@Component) - 总结
1)SpringBoot 启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 。
2)@EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类。
3)筛选有效的自动配置类。
4)每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能