原理初探
-
每次SpringBoot启动的时候 都会自动加载运行类的一些默认配置
-
我们可以查看我们需要的配置有没有在启动的时候进行自动配置
-
如果我们的配置没有在配置中,我们可以在properties中进行自动配置
-
SpringBoot的每一个配置类都绑定了@configurationProperties的注解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DUIw0iiR-1626516318192)(C:\Users\machenike\AppData\Roaming\Typora\typora-user-images\image-20210717174250742.png)]
-
我们在properties中配置的某一个类的某一个属性,都会通过这个注解自动装配到指定的类种,并对这个类的默认值进行替换
xxxxAutoConfigratin :自动配置类 用来提供给容器添加属性或更改属性的方法
xxxxproperties:封装了配置文件中的属性
除此之外 我们可以通过设置debug=true的方式 来查看我们程序运行后 SpringBoot给我们启动了哪些类
debug=true
启动的类中一共分了三类
-
Positive matches: 启动的类
-
Negative matches:未启动的类
-
Unconditional classes:条件不足的类
它通过我们程序中import的包 来判断给我们配置需要启动的类
而未启动的类则是我们程序中没有用到的 它自动默认不启动
条件不足的类 我们可以通过添加启动器的依赖 来满足它启动的环境 前提是我们的确需要它
总结
每一个类的自动装配 都需要由对应的META-INF下的spring.farctories中进入 然后一级一级 直到找到xxxxproperties.class 就算找到了它的配置类,而我们的配置文件也就是和这个类进行了绑定、自动装配
这也是SpringBoot自动装配的核心 通过@ConfigrationProperties这个注解 实现配置绑定 从而达到自动装配的目的