SpringBoot自動配置原理

2021-10-09 23:43:07 字數 1281 閱讀 1271

@enableautoconfiguration

@enableautoconfiguration作用: 利用enableautoconfigurationimportselector給容器中匯入一些元件?

可以檢視selectimports()方法的內容;

list configurations =

getcandidateconfigurations

(annotationmetadata, attributes)

;獲取候選的配置

springfactoriesloader.

loadfactorynames()

掃瞄所有jar包類路徑下 meta‐inf/spring.factories

把掃瞄到的這些檔案的內容包裝成properties物件

從properties中獲取到enableautoconfiguration.

class類(類名)對應的值,

然後把他們新增在容器中

將類路徑下 meta-inf/spring.factories 裡面配置的所有enableautoconfiguration的值加入到了容器中;每乙個這樣的 ***autoconfiguration類都是容器中的乙個元件,都加入到容器中;用他們來做自動配置;

根據當前不同的條件判斷,決定這個配置類是否生效? 一但這個配置類生效;這個配置類就會給容器中新增各種元件;這些元件的屬性是從對應的properties類中獲取 的,這些類裡面的每乙個屬性又是和配置檔案繫結的;

精髓:1)、springboot啟動會載入大量的自動配置類

2)、我們看我們需要的功能有沒有springboot預設寫好的自動配置類;

3)、我們再來看這個自動配置類中到底配置了哪些元件;(只要我們要用的元件有,我們就不需要再來配置了)

4)、給容器中自動配置類新增元件的時候,會從properties類中獲取某些屬性。我們就可以在配置檔案中指定這 些屬性的值;

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...