总结
- Springboot首先扫描所有包下的spring.factories文件,拿到文件中所有的自动配置类 xxxxxAutoConfiguration
- Springboot加载所有的自动配置类 xxxxxAutoConfiguration
- 每个自动配置类都设定了生效条件,例如有某个类、配置文件里有某个前缀的配置,然后从xxxxProperties(已经跟配置文件进行了绑定)里面拿配置内容
- 观察发现每个自动配置类里就是很多的@Bean注解,给容器中加入很多组件
- 容器中具有了这些组件,那么就具有了相应的功能
所有包下的spring.factories----->xxxxxAutoConfiguration —> 组件 —> xxxxProperties里面拿值 ----> application.properties
从上面的流程可以看出,当我们需要定制化配置时,有两种方式: - 用户直接自己@Bean替换底层的组件(springboot在加载组件的过程会判断容器中是否已经具有了某种类型的组件,如果有就直接返回这个组件,没有就new一个)
- 用户去看这个组件是获取的配置文件什么值就去修改。
以上部分内容来自尚硅谷教程