Spring Boot學習一之配置類及自動配置


一、配置類

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屬性都可以定義排除項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM