一、配置類
1. 導入其他配置類
你不需要將所有的 @Configuration 放進一個單獨的類, @Import 注解可以用來導入其他配置類。另外,你也可以使用 @ComponentScan 注解自動收集所有Spring組件,包括 @Configuration 類。
2. 導入XML配置
如果必須使用XML配置,建議你仍舊從一個 @Configuration 類開始,然后使用 @ImportResource 注解加載XML配置文件
二、自動配置
Spring Boot自動配置(auto-configuration)嘗試根據添加的jar依賴自動配置你的Spring應用。例如,如果classpath下存在 HSQLDB ,並且你沒有手動配置任何數據庫連接的beans,那么Spring Boot將自動配置一個內存型(in-memory)數據
實現自動配置有兩種可選方式,分別是將 @EnableAutoConfiguration 或 @SpringBootApplication 注解到 @Configuration 類
注:你應該只添加一個 @EnableAutoConfiguration 注解,通常建議將它添加到主配置類(primary @Configuration )
1. 逐步替換自動配置
自動配置(Auto-configuration)是非侵入性的,任何時候你都可以定義自己的配置類來替換自動配置的特定部分。例如,如果你添加自己的 DataSource bean,默認的內嵌數據庫支持將不被考慮。
如果需要查看當前應用啟動了哪些自動配置項,你可以在運行應用時打開 --debug 開關,這將為核心日志開啟debug日志級別,並將自動配置相關的日志輸出到控制台。
2. 禁用特定的自動配置項
如果發現啟用了不想要的自動配置項,你可以使用 @EnableAutoConfiguration 注解的exclude屬性禁用它們:
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.cl
ass})
public class MyConfiguration {
}
如果該類不在classpath中,你可以使用該注解的excludeName屬性,並指定全限定名來達到相同效果。最后,你可以通過 spring.autoconfigure.exclude 屬性exclude多個自動配置項(一個自動配置項集合)。
注 通過注解級別或exclude屬性都可以定義排除項。