二刷了雷神的Springboot底层自动配置类,终于理解了Springboot的底层自动配置原理。
流程如下:
首先我们的Springboot启动时先加载了所有的配置类,xxxxAutoConfiguration,但是不是所有的自动配置类都生效了
每一个自动配置类都是有@Conditional***来按条件生效。不满足条件该自动配置类下的就不会生效了。
而生效的配置类中会给容器加很多的组件(方法都第三方写好了的)。@Bean。。。。只要容器中有这些组件,功能也就有了。
并且很多自动配置类中会有绑定一些Properties:如下图
@EnableConfigurationProperties 有两个功能,
//一个是开启Cacheproperties.class的属性配置功能
//另一个是把Cacheproperties.class加入到容器中
我们可以来到Cacheproperties.class:
@Configurationproperties(prefix=“****”)就是说我们可以通过配置文件来进行内容填充。prefix是前缀。比如我们要向cachNames添加属性,那么我们在properties或者yml配置文件是写:****.cachNames="hh".
所以自动配置类中会从我们的xxxxproperties里拿值进行操作。而我们的xxxxproperties则去application.properties里进行属性装配。
以上就是我们为什么写application.properties和springboot自动装配的联系。