springboot獲取properties屬性值的多種方式總結(jié)
獲取properties屬性值方式總結(jié)
spring boot 在多環(huán)境情況下我們需要根據(jù)不同的獲取不一樣的值, 我們會配置在不同的文件中,
那么我們怎么獲取配置的屬性值呢! 下面介紹幾種用法。
1. 除了默認(rèn)配置在 application.properties的多環(huán)境中添加屬性
我們會在application.properties 中激活不同方式選擇下面的不同文件進(jìn)行發(fā)布。
設(shè)置的激活參數(shù):dev, test, prod
spring.profiles.active=prod url.lm=editMessage url.orgCode=100120171116031838 url.ybd=http://www.test.com/sales/ url.PostUrl=/LmCpa/apply/applyInfo ?
獲取屬性可以, 定義配置類:
@ConfigurationProperties(prefix = "url") ? ?
public class ?ManyEnvProperties{ ?
? ?private String lm; ?
? ?private String orgCode; ?
? ?private String ybd; ?
? ?private String postUrl; ?
? ?// 省列g(shù)etter setter 方法 ?
} ?2. 使用之前在spring中加載的value值形式
@Component ?
public class ManyEnvProperties { ?
? ?@Value("${url.lm}") ?
? ?private String lmPage; ?
? ?@Value("${url.ybd}") ?
? ?private String sendYbdUrl; ?
? ?@Value("${url.orgCode}") ?
? ?private String orgCode; ?
? ?@Value("${url.PostUrl}") ?
? ?private String PostUrl; ?
? ?// 省列g(shù)etter setter 方法 ?
} ?3. 也可以使用springboot里面的Environment 直接取值
顯示注入, 其次是在需要的地方獲取值
@Autowired ?
private Environment env; ?
logger.info("===============》 " + env.getProperty("url.lm")); 4. 如果是自己新建的一個properties文件
@Component ?
@ConfigurationProperties(prefix = "url") ?
@PropertySource("classpath:/platform.properties") ?
public class PropertiesEnv { ?
? ?private String lm; ?
? ?private String orgCode; ?
? ?private String ybd; ?
? ?private String postUrl;
? ?// 省列g(shù)etter setter 方法 ?
}?獲取多個自定義屬性值
使用@Value 注入每個自定義配置,當(dāng)自定義配置的屬性值過多時就比較麻煩了,這時通過springboot提供了基于類型安全的配置方法,通過@ConfigurationProperties將properties中的屬性和一個bean的屬性關(guān)聯(lián),從而實現(xiàn)類型安全的配置,
比如在application中自定義屬性
note.author=yzh note.name=china
可以通過
@ConfigurationProperties(prefix="note")
需要注意的是自定義屬性值的前綴統(tǒng)一為note才可以獲取到對應(yīng)的屬性值.屬性值名稱要跟配置文件里面的名稱對應(yīng)起來
同時通過這種方法需要生成屬性值的get/set 方法,否則獲取不到對應(yīng)的屬性值
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java內(nèi)存劃分:運行時數(shù)據(jù)區(qū)域
聽說Java運行時環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運行時數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下2021-07-07
springboot整合H2內(nèi)存數(shù)據(jù)庫實現(xiàn)單元測試與數(shù)據(jù)庫無關(guān)性
本篇文章主要介紹了springboot整合H2內(nèi)存數(shù)據(jù)庫實現(xiàn)單元測試與數(shù)據(jù)庫無關(guān)性,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程
這篇文章主要為大家介紹了java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達(dá)式
這篇文章主要介紹了SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達(dá)式,需要的朋友可以參考下2017-12-12
SpringBoot 錯誤處理機(jī)制與自定義錯誤處理實現(xiàn)詳解
這篇文章主要介紹了SpringBoot 錯誤處理機(jī)制與自定義錯誤處理實現(xiàn)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Spring cloud restTemplate 傳遞復(fù)雜參數(shù)的方式(多個對象)
這篇文章主要介紹了Spring cloud restTemplate 傳遞復(fù)雜參數(shù)的方式(多個對象),需要的朋友可以參考下2018-05-05

