Spring Boot 自动配置的原理

  1. SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration。

    SpringBoot自动配置原理
  2.  

    @EnableAutoConfiguration的作用是利用AutoConfigurationImportSelector给容器中导入一些组件。

    SpringBoot自动配置原理
  3.  

    可以查看public String[] selectImports(AnnotationMetadata annotationMetadata)方法的内容。

    SpringBoot自动配置原理
  4.  

    通过protected List<String> getCandidateConfigurations(AnnotationMetadata metadata,      AnnotationAttributes attributes)获取候选的配置,这个是扫描所有jar包类路径下"META-INF/spring.factories";

    SpringBoot自动配置原理
  5.  

    然后把扫描到的这些文件包装成Properties对象。

    SpringBoot自动配置原理
  6.  

    从properties中获取到EnableAutoConfiguration.class类名对应的值,然后把他们添加在容器中。

    SpringBoot自动配置原理
  7.  

    整个过程就是将类路径下"META-INF/spring.factories"里面配置的所有EnableAutoConfiguration的值加入到容器中。

    SpringBoot自动配置原理
  8.  

    每一个这样XXAutoConfiguration类都是容器中的一个组件都加入到容器中,用他们来做自动配置。

    每一个自动配置类进行自动配置功能,以HttpEncodingAutoConfiguration为例解释自动配置原理。

    SpringBoot自动配置原理
  9.  

    根据当前不同的条件判断,决定这个配置是否生效。

    SpringBoot自动配置原理
posted @ 2021-03-06 21:00  骑龙日天  阅读(124)  评论(0)    收藏  举报