SpringBoot之自动装配原理


Properties是属性的意思

零、基本原则和使用步骤

* 这里是SpringBoot的精髓

为啥把基本原则放在最前面讲呢 , 因为我觉得了解了整个框架以后,更好理解细节

springboot将需要的功能都集成到了配置中,我的理解是 功能配置化
由于springboot 会自动加载配置类 : 因此在使用的过程中

先看自动配置是否已经帮我们写好了默认配置类,如果有 ,添加使用并在不满意的地方修改配置即可,没有的话,需要先手动配置
在这里插入图片描述

如何修改属性值 : 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这
些属性的值;
如,在application.properties文件中修改如下配置的值 : spring.activemq.non-blocking-redelivery=
在这里插入图片描述


一、需要了解的注解

1. @EnableAutoConfiguration 开启自动配置
2. @Import(param) 导入组件
3. @Configuration 一个配置类,将该类添加给容器
4. @EnableConfigurationProperties(param) 启动指定
	ConfigurationProperties功能,并把该类加载入ioc容器
5. @ConfigurationProperties(prefix="") 将配置文件中指定的值
	与bean中的属性绑定
6. @ConditionalOnWebSApplication 判断是否为web应用,
	如果不是就使配置失效
7. @ConditionalOnProperty 判断配置文件中是否存在某个配置
8. @Bean 要给容器中添加的组件

第五点示例 ↓ :

@ConfigurationProperties(prefix = "spring.http.encoding")
public class HttpEncodingProperties {
    
    

关于Conditional开头的注解 : 在spring boot中 , 以此开头的是用于判断自动配置是否生效,是对spring原生的@Conditional注解的扩展


二、细节

自动装配中,当配置类生效时 , 组件的属性是从XxxxProperties文件中获取的,而XxxxProperties类中属性又与配置文件application.properties绑定

注意上面说的XxxxPropertiesapplication.properties , 在application.properties中ctrl+左键单击对应的配置,就会进入XxxxProperties ,前者是配置类,后者是配置文件

总结

水平有限,只能是边用边体会原理了

猜你喜欢

转载自blog.csdn.net/qq_45596525/article/details/108922140