Spring Boot支持基於java的配置,雖然可使用XML源的SpringApplication
,可是咱們一般建議你的主源是一個@Configuration
類。一般,定義main
方法的類是一個很好的候選者,做爲主要的@Configuration
。java
許多Spring配置示例已經在Internet上發佈,它們使用XML配置。若是可能,始終嘗試使用等效的基於java的配置,搜索
Enable*
註解多是一個很好的起點。
你沒必要將全部@Configuration
放入一個類中,可使用@Import
註解導入額外的配置類,或者,你可使用@ComponentScan
自動提取全部Spring組件,包括@Configuration
類。spring
若是你必須使用基於XML的配置,咱們仍然建議你開始一個@Configuration
類,而後你可使用一個@ImportResource
註解加載XML配置文件。數據庫
Spring Boot自動配置嘗試根據你添加的jar依賴項自動配置Spring應用程序,例如,若是HSQLDB
在你的類路徑上,而且你沒有手動配置任何數據庫鏈接bean,那麼Spring Boot將自動配置一個內存中的數據庫。segmentfault
你須要將@EnableAutoConfiguration
或@SpringBootApplication
註解選擇的添加到你的其中一個@Configuration
類中。debug
你應該只添加一個@SpringBootApplication
或@EnableAutoConfiguration
註解,咱們一般建議只在主@Configuration
類中添加其中一個或另外一個。
自動配置非侵入性,在任什麼時候候,你均可以開始定義本身的配置來替換自動配置的特定部分。例如,若是你添加了本身的DataSource
bean,默認的嵌入式數據庫支持就會後退。調試
若是你須要瞭解哪些自動配置當前正在應用以及爲何,使用--debug
開關啓動應用程序,這樣作能夠爲一些核心日誌記錄器選擇調試日誌,並將條件報告記錄到控制檯。日誌
若是你發現你不想要的特定的自動配置類正在被應用,你可使用@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
屬性來控制要排除的自動配置類的列表。內存
你能夠在註解級別和使用屬性定義排除。