【SpringBoot】SpringBoot的自动配置

⾃动配置

  • 基于添加的 JAR 依赖⾃动对 Spring Boot 应⽤程序进⾏配置
  • SpringBoot自动配置相关的代码都在spring-boot-autoconfiguration包里面。

开启⾃动配置

  • @EnableAutoConfiguration 开启自动配置

    • exclude = Class[] 排除一些不需要的自动配置
  • @SpringBootApplication → 这个注解上带有@EnableAutoConfiguration

⾃动配置的实现原理

@EnableAutoConfiguration

  1. @EnableAutoConfiguration注解定义上会@Import({AutoConfigurationImportSelector.class})
  2. AutoConfigurationImportSelector#selectImports(...)会调用到getAutoConfigurationEntry(...)方法进而调用getCandidateConfigurations(...)方法
  3. 最后会加载
    image
  4. 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

你可能感兴趣的:(【SpringBoot】SpringBoot的自动配置)