SpringBoot自动配置原理

作者:暴躁小n | 创建时间: 2023-05-27
SpringBoot自动配置原理...
SpringBoot自动配置原理

操作方法

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

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

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

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

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

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

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

每一个这样XXAutoConfiguration类都是容器中的一个组件都加入到容器中,用他们来做自动配置。 每一个自动配置类进行自动配置功能,以HttpEncodingAutoConfiguration为例解释自动配置原理。

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

点击展开全文

更多推荐