自動組態
Spring Boot 自動組態嘗試根據您新增的 jar 依賴項自動配置您的 Spring 應用程式。例如,如果 HSQLDB
在您的類別路徑中,且您尚未手動配置任何資料庫連線 bean,則 Spring Boot 會自動組態記憶體內資料庫。
您需要透過將 @EnableAutoConfiguration
或 @SpringBootApplication
注解新增至您的其中一個 @Configuration
類別來選擇加入自動組態。
您應該只新增一個 @SpringBootApplication 或 @EnableAutoConfiguration 注解。我們通常建議您只將其中一個新增至您的主要 @Configuration 類別。 |
逐步取代自動組態
自動組態是非侵入性的。在任何時候,您都可以開始定義自己的組態來取代自動組態的特定部分。例如,如果您新增自己的 DataSource
bean,則預設的嵌入式資料庫支援將會退回。
如果您需要找出目前正在套用哪些自動組態,以及原因,請使用 --debug
切換啟動您的應用程式。這樣做會啟用選定核心日誌記錄器的偵錯日誌,並將條件報告記錄到主控台。
停用特定自動組態類別
如果您發現正在套用您不想要的特定自動組態類別,您可以使用 @SpringBootApplication
的 exclude 屬性來停用它們,如下列範例所示
-
Java
-
Kotlin
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class])
class MyApplication
如果類別不在類別路徑中,您可以使用注解的 excludeName
屬性,並改為指定完整限定名稱。如果您偏好使用 @EnableAutoConfiguration
而不是 @SpringBootApplication
,則 exclude
和 excludeName
也可用。最後,您也可以使用 spring.autoconfigure.exclude
屬性來控制要排除的自動組態類別清單。
您可以在注解層級和使用屬性來定義排除項。 |
即使自動組態類別是 public ,但被視為公用 API 的類別唯一方面是可用於停用自動組態的類別名稱。這些類別的實際內容,例如巢狀組態類別或 bean 方法,僅供內部使用,我們不建議直接使用它們。 |