Spring Boot 參考指南(自動配置)

15. 配置類

Spring Boot支持基於java的配置,雖然可使用XML源的SpringApplication,可是咱們一般建議你的主源是一個@Configuration類。一般,定義main方法的類是一個很好的候選者,做爲主要的@Configurationjava

許多Spring配置示例已經在Internet上發佈,它們使用XML配置。若是可能,始終嘗試使用等效的基於java的配置,搜索 Enable*註解多是一個很好的起點。

15.1 導入額外的配置類

你沒必要將全部@Configuration放入一個類中,可使用@Import註解導入額外的配置類,或者,你可使用@ComponentScan自動提取全部Spring組件,包括@Configuration類。spring

15.2 導入XML配置

若是你必須使用基於XML的配置,咱們仍然建議你開始一個@Configuration類,而後你可使用一個@ImportResource註解加載XML配置文件。數據庫

16. 自動配置

Spring Boot自動配置嘗試根據你添加的jar依賴項自動配置Spring應用程序,例如,若是HSQLDB在你的類路徑上,而且你沒有手動配置任何數據庫鏈接bean,那麼Spring Boot將自動配置一個內存中的數據庫。segmentfault

你須要將@EnableAutoConfiguration@SpringBootApplication註解選擇的添加到你的其中一個@Configuration類中。debug

你應該只添加一個 @SpringBootApplication@EnableAutoConfiguration註解,咱們一般建議只在主 @Configuration類中添加其中一個或另外一個。

16.1 逐漸取代自動配置

自動配置非侵入性,在任什麼時候候,你均可以開始定義本身的配置來替換自動配置的特定部分。例如,若是你添加了本身的DataSource bean,默認的嵌入式數據庫支持就會後退。調試

若是你須要瞭解哪些自動配置當前正在應用以及爲何,使用--debug開關啓動應用程序,這樣作能夠爲一些核心日誌記錄器選擇調試日誌,並將條件報告記錄到控制檯。日誌

16.2 禁用特定類的自動配置

若是你發現你不想要的特定的自動配置類正在被應用,你可使用@EnableAutoConfiguration的排除屬性來禁用它們,以下例所示:code

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

若是類不在類路徑上,則可使用註解的excludeName屬性,並指定徹底限定的名稱。最後,你還能夠經過使用spring.autoconfigure.exclude屬性來控制要排除的自動配置類的列表。內存

你能夠在註解級別和使用屬性定義排除。

上一篇:結構化你的代碼

下一篇:Spring bean和依賴項注入

相關文章
相關標籤/搜索