自動配置
Spring Boot 自動配置嘗試根據您新增的 jar 依賴項自動配置您的 Spring 應用程式。例如,如果您的類路徑中存在 HSQLDB,並且您尚未手動配置任何資料庫連線 bean,則 Spring Boot 會自動配置一個記憶體資料庫。
您需要透過在其中一個 @Configuration 類上新增 @EnableAutoConfiguration 或 @SpringBootApplication 註解來選擇啟用自動配置。
您應該只新增一個 @SpringBootApplication 或 @EnableAutoConfiguration 註解。我們通常建議您只將其中一個新增到您的主 @Configuration 類中。 |
逐步替換自動配置
自動配置是非侵入性的。在任何時候,您都可以開始定義自己的配置來替換自動配置的特定部分。例如,如果您新增自己的 DataSource bean,預設的嵌入式資料庫支援就會退出。
如果您需要了解當前正在應用哪些自動配置以及原因,請使用 --debug 開關啟動您的應用程式。這樣做會為一部分核心日誌記錄器啟用除錯日誌,並將條件報告記錄到控制檯。
停用特定自動配置類
如果您發現正在應用您不希望的特定自動配置類,您可以使用 @SpringBootApplication 的 exclude 屬性來停用它們,如以下示例所示
-
Java
-
Kotlin
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration
@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class])
class MyApplication
如果該類不在類路徑中,您可以使用註解的 excludeName 屬性並指定完全限定名。如果您更喜歡使用 @EnableAutoConfiguration 而不是 @SpringBootApplication,則 exclude 和 excludeName 也可用。最後,您還可以透過使用 spring.autoconfigure.exclude 屬性來控制要排除的自動配置類列表。
| 您可以在註解級別和使用屬性來定義排除項。 |
儘管自動配置類是 public 的,但該類唯一被視為公共 API 的方面是類的名稱,可用於停用自動配置。這些類的實際內容,例如巢狀配置類或 bean 方法,僅供內部使用,我們不建議直接使用它們。 |
自動配置包
自動配置包是各種自動配置功能在掃描實體和 Spring Data 倉庫等內容時預設查詢的包。@EnableAutoConfiguration 註解(直接或透過其在 @SpringBootApplication 上的存在)確定預設的自動配置包。可以使用 @AutoConfigurationPackage 註解配置其他包。