javascript
《Spring Boot官方文档》16. 自动配置
Spring Boot的自動配置會嘗試根據你添加進來的jar依賴來自動配置你的Spring應用。例如,如果HSQLDB在你的classpath路徑上,你沒有手動配置任何數據庫連接實體類,我們還會自動配置內存數據庫。
你可以有選擇的實現自動配置,可以向?@Configuration上添加@EnableAutoConfiguration或者@SpringBootApplication注解來實現。
你應該只添加一個@EnableAutoConfiguration注解。我們通常建議你把它添加到你的主要?@Configuration類上。
自動配置是非入侵式的,任何時候你都可以使用你自定義的配置來覆蓋自動配置的特定部分。例如,如果你要添加自己的DataSource bean,默認的內嵌數據庫會無效。
如果你需要查找當前應用的自動配置,你可以啟動應用時加上–debug開關。它會為核心日志記錄器開啟debug日志記錄,并且會打印自動配置日志信息到控制臺。
16.2禁用特定自動配置如果你發現正在應用的特定自動配置不是你想要的,你可以使用@EnableAutoConfiguration的排除屬性來禁用它們。
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration {
}
如果這個類不在classpath路徑下,你可以使用該注解的excludeName屬性以及指定全限定名 來替代。最終,你也可以控制自動配置類的列表來額除spring.autoconfigure.exclude屬性。
你可以通過注解級別以及使用屬性來定義排除項。
17.?Spring Beans和依賴注入你可以自由使用任何標準Spring框架技術來定義你的beas以及它們的依賴。簡單來說,我們通常使用@ComponentScan 來發現你的beans,并且配合@Autowired構造器來更好的注入。
如果你在構造代碼時使用上面建議的方式(在根包下定位你的應用類),你可以用@ComponentScan注解,無需任何參數。你所有的應用組件(@Component,?@Service,?@Repository,?@Controller?等等)都會作為Spring Beans來注冊。
下面的例子是使用@Service Bean構造器注入用于獲取必要的RiskAssessor?Bean。
package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
@Autowired public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// …
}
請注意使用構造器注入允許使用final標記riskAssessor?對象,表明以后該對象不能被改變。
轉載自?并發編程網 - ifeve.com
總結
以上是生活随笔為你收集整理的《Spring Boot官方文档》16. 自动配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【js】JSON.stringify 语
- 下一篇: Android夜间模式的几种实现