根據自動配置原理 學習后,整理學習筆記
一定要耐心去看,耐著性子去學習,慢慢慢慢就明白了
配置深化學習
前提
- 通過
@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 : 沒有條件