【SpringBoot】SpringBoot的自动配置
2022-11-18 本文已影响0人
嘟null
⾃动配置
- 基于添加的 JAR 依赖⾃动对 Spring Boot 应⽤程序进⾏配置
- SpringBoot自动配置相关的代码都在
spring-boot-autoconfiguration
包里面。
开启⾃动配置
-
@EnableAutoConfiguration
开启自动配置- exclude = Class[] 排除一些不需要的自动配置
-
@SpringBootApplication
→ 这个注解上带有@EnableAutoConfiguration
⾃动配置的实现原理
@EnableAutoConfiguration
-
@EnableAutoConfiguration
注解定义上会@Import({AutoConfigurationImportSelector.class})
- AutoConfigurationImportSelector#selectImports(...)会调用到getAutoConfigurationEntry(...)方法进而调用getCandidateConfigurations(...)方法
- 最后会加载 image
- META-INF/spring.factories
- org.springframework.boot.autoconfigure.EnableAutoConfiguration image
条件注解
- @Conditional
- @ConditionalOnClass
- @ConditionalOnBean
- @ConditionalOnMissingBean
- @ConditionalOnProperty
- ……
了解⾃动配置的情况
观察⾃动配置的判断结果
- 在命令行上加上 --debug image
ConditionEvaluationReportLoggingListener进行输出
- Positive matches
- Negative matches
- Exclusions
- Unconditional classes