根据自动配置原理 学习后,整理学习笔记
一定要耐心去看,耐着性子去学习,慢慢慢慢就明白了
配置深化学习
前提
- 通过
@SpringBootApplication
找到@EnableAutoConfiguration
; - 发现
@Import({AutoConfigurationImportSelector.class})
; - 在
AutoConfigurationImportSelector
中经过一系列配置调用后发现,最后回去使用AutoConfiguration
这个类; - 根据这个
AutoConfiguration
,找到了spring-boot-autoconfigure-3.5.4.jar
; - 在这个包中有
org.springframework.boot.autoconfigure.AutoConfiguration.imports
;
之后的配置使用
根据笔记梳理
- Spring的配置文件
spring.factories
/org.springframework.boot.autoconfigure.AutoConfiguration.imports
- 在这个配置中直接指向了
WebMvcAutoConfiguration
WebMvcAutoConfiguration
里面都会有@EnableConfigurationProperties()
,在这个注解中绑定配置了一个文件WebMvcProperties
@Configuration
表示是一个配置类,表示会被Spring接管;@EnableConfigurationProperties
表示了配置的属性类
- 在
WebMvcProperties
发现加载了一个@ConfigurationProperties("spring.mvc")
注解,跟我们的配置文件绑定,使用自定义的配置
- 在配置文件中 就对应能够搜索的到,
总结
SpringBoot帮我们自动装配,装配完之后,去Properties
中去取默认值;如果想要去修改默认值,就按照对应的规则我们去配置文件中去匹配值;
配置类生效,就会给容器中添加各种组件,这些组件单属性是从properties
去获取的,每一个属性都是和配置文件相绑定的;这样我们就可以通过SpringBoot
的配置文件去修改我们组件中的一些内容;
- SpringBoot启动会加载大量的自动配置类
- 我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;
- 我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在在其中,我们就不需要再手动配置了)
- 给容器中自动配置类添加组件的时候,会从
properties
类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可;
- xxxxAutoConfigurartion:自动配置类;给容器中添加组件
- xxxxProperties:封装配置文件中相关属性;
检查是否生效
检查配置类是否生效使用:debug=true
,在Properties
中添加根节点的debug属性,就可以;
#开启springboot的调试类
debug=true
会输出到控制台,可以看到哪些生效了;
- Did not match : 没有生效
- Unconditional : 没有条件