springBoot 配置文件 yml、properties

@Value獲取值和@ConfigurationProperties獲取值比較

 
@ConfigurationProperties
@Value
功能
批量注入配置文件中的屬性
一個個指定
鬆散綁定(鬆散語法)
支持
不支持
SpEL
不支持
支持
JSR303數據校驗
支持
不支持
複雜類型封裝
支持
不支持
@Value
    @Value("${kafkaConfig.topic}")
 
 
 
@ConfigurationProperties
 
@Component
@ConfigurationProperties(prefix="configInfo")
public class InfoYml {
    private static String fileServiceUp;
 
public static String getConfInfo(String str){
if(str.equals("fileServiceUp")){
return getFileServiceUp();
}
}
 
get()、set() 方法
}
 
 
application.yml 文件
#### 項目的相關配置信息
configInfo:
##文件服務器dev
 
指定配置文件
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix="configInfo")
 
配置文件yml還是properties他們都能獲取到值;
如果說,我們只是在某個業務邏輯中需要獲取一下配置文件中的某項值,使用@Value;
如果說,我們專門編寫了一個javaBean來和配置文件進行映射,我們就直接使用@ConfigurationProperties;
 

激活指定profile

配置文件有多種 test 、prod、dev (例:application-dev.yml
 
方法一    在配置文件中 spring.profiles.active=dev                                                    (優先級最低
方法二    啓動jar時, java -jar 【文件名.jar】 --spring.profiles.active=dev
其他方法  在配置tomcat 或者 JVM時  加參數 --spring.profiles.active=dev    (優先級最高)
 
配置文件可放置位置
–file:./config/                優先級高   應該是src\config
–file:./
–classpath:/config/                        即jar中的WEB-INF/classes/config 代碼中的 src\main\resources
–classpath:/                  優先級低
優先級由高到底,高優先級的配置會覆蓋低優先級的配置;
 
在後期運維時,可以通過 spring.config.location 參數指定外部配置文件(優先級高)
java -jar 【jar包】 --spring.config.location=【配置文件路徑】
 
 
兩種配置文件 優先級
application.properties 和  application.yml   如果兩個文件的配置項、路徑一致,那麼從最後的結果來說,yml內容會被覆蓋。看博文是說yml先加載(具體原因未糾結)。
發佈了29 篇原創文章 · 獲贊 9 · 訪問量 9290
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章