springboot自動配置原理

2021-09-18 02:54:00 字數 1052 閱讀 2434

我首先看了一些部落格,大多數是這樣解釋的。

springboot 自動配置主要通過 @enableautoconfiguration, @conditional, @enableconfigurationproperties 或者 @configurationproperties 等幾個註解來進行自動配置完成的。

@enableautoconfiguration 開啟自動配置,主要作用就是呼叫 spring-core 包裡的 loadfactorynames(),將 autoconfig 包裡的已經寫好的自動配置載入進來。

@conditional 條件註解,通過判斷類路徑下有沒有相應配置的 jar 包來確定是否載入和自動配置這個類。

在@enableautoconfiguration中,匯入了乙個autoconfigurationimportselector.class。我推測一些自動配置就是在這個類中實現的。

進入這個類中,這個類是固定路勁下讀取配置。

總結,@enableautoconfiguration 作用

從classpath中搜尋所有meta-inf/spring.factories配置檔案然後,將其中org.springframework.boot.autoconfigure.enableautoconfiguration key對應的配置項載入到spring容器

只有spring.boot.enableautoconfiguration為true(預設為true)的時候,才啟用自動配置

@enableautoconfiguration還可以進行排除,排除方式有2中,一是根據class來排除(exclude),二是根據class name(excludename)來排除

其內部實現的關鍵點有

1)importselector 該介面的方法的返回值都會被納入到spring容器管理中

2)springfactoriesloader 該類可以從classpath中搜尋所有meta-inf/spring.factories配置檔案,並讀取配置

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