SpringBoot——自动配置原理解析
Spring Boot 自动配置原理解析
一、自动配置原理
总结:
SpringBoot先加载所有的自动配置类 xxxxxAutoConfiguration
每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。xxxxProperties里面拿。xxxProperties和配置文件进行了绑定
生效的配置类就会给容器中装配很多组件
只要容器中有这些组件,相当于这些功能就有了
定制化配置
- 用户直接自己@Bean替换底层的组件
- 用户去看这个组件是获取的配置文件什么值就去修改。
xxxxxAutoConfiguration —> 组件 —> xxxxProperties里面拿值 —-> application.properties
- @SpringBootApplication(包含三个注解)
- @SpringBootConfiguration –》@Configuration,代表当前是一个配置类
- @ComponentScan–》指定扫描哪些,Spring注解
- @EnableAutoConfiguration
- @AutoConfigurationPackage–》自动配置包,指定了默认的包规则
- @Import(AutoConfigurationImportSelector.class)
@SpringBootApplication
1 |
|
@EnableAutoConfiguration
1 |
|
@AutoConfigurationPackage
1 | //给容器中导入一个组件 |
@Import(AutoConfigurationImportSelector.class)
1 | 1、利用getAutoConfigurationEntry(annotationMetadata);给容器中批量导入一些组件 |
按需开启自动配置项
虽然我们127个场景的所有自动配置启动的时候默认全部加载。xxxxAutoConfiguration 按照条件装配规则(@Conditional),最终会按需配置。
修改默认配置
1 |
|
SpringBoot默认会在底层配好所有的组件。但是如果用户自己配置了以用户的优先
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Toweringx的博客!
评论