springboot自动装配

springboot自动装配

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

你可能感兴趣的:(springboot自动装配)