本文以 2.3.3 版本為例每乙個這樣的***autoconfiguration類都是容器中的乙個元件,都加入到容器中;用他們來做自動配置!!!
//表示這是乙個配置類,和以前編寫的配置檔案一樣,也可以給容器中新增元件; @config
@configuration
(proxybeanmethods =
false
)//啟動指定類的configurationproperties功能;
//進入這個httpproperties檢視,將配置檔案中對應的值和httpproperties繫結起來;
//並把httpproperties加入到ioc容器中
)//spring底層@conditional註解
//根據不同的條件判斷,如果滿足指定的條件,整個配置類裡面的配置就會生效;
//這裡的意思就是判斷當前應用是否是web應用,如果是,當前配置類生效
//判斷當前專案有沒有這個類characterencodingfilter;springmvc中進行亂碼解決的過濾器;
@conditionalonclass
(characterencodingfilter.
class
)//判斷配置檔案中是否存在某個配置:spring.http.encoding.enabled;
//如果不存在,判斷也是成立的
//即使我們配置檔案中不配置pring.http.encoding.enabled=true,也是預設生效的;
//給容器中新增乙個元件,這個元件的某些值需要從properties中獲取
@bean
@conditionalo****singbean
//判斷容器有沒有這個元件?
1、springboot啟動會載入大量的自動配置類2、我們看我們需要的功能有沒有在springboot預設寫好的自動配置類當中;3、我們再來看這個自動配置類中到底配置了哪些元件;(只要我們要用的元件存在在其中,我們就不需要再手動配置了)# 修改伺服器端口號
server.port=9000
# 我們能配置的屬性都是**於這個功能的properties類
4、給容器中自動配置類新增元件的時候,會從properties類中獲取某些屬性。我們只需要在配置檔案中指定這些屬性的值即可;
***xautoconfigurartion:自動配置類給容器中新增元件
***xproperties:封裝配置檔案中相關屬性;
【ctrl + n 搜尋
*autoconfiguration
檢視預設的寫好的所有配置類】Spring boot自動配置
1 從原始碼角度看spring boot 自動配置 這個方法呼叫的是 initialize sources suppresswarnings private void initialize object sources this.webenvironment deducewebenvironment...
Spring Boot 自動配置
在spring中假設我們要使用乙個資料來源,必須在配置datasource才能使用,但是使用了spring boot這些就不存在了,相當於spring boot為我們做了很多配置的工作。spring 4提供了乙個更通用的基於條件的bean的建立方式,即使用 conditional 實現conditi...
springboot自動配置
springboot 一.切換條件condition 1.配置類加 configuration,返回值為所需實體類的方法加 bean 2.實體類方法加 conditional x.class 3.類實現condition類重寫它的public boolean matches conditioncon...