springboot獲取properties屬性值的多種方式總結(jié)
獲取properties屬性值方式總結(jié)
spring boot 在多環(huán)境情況下我們需要根據(jù)不同的獲取不一樣的值, 我們會(huì)配置在不同的文件中,
那么我們?cè)趺传@取配置的屬性值呢! 下面介紹幾種用法。
1. 除了默認(rèn)配置在 application.properties的多環(huán)境中添加屬性
我們會(huì)在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. 如果是自己新建的一個(gè)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 方法 ? }?
獲取多個(gè)自定義屬性值
使用@Value 注入每個(gè)自定義配置,當(dāng)自定義配置的屬性值過(guò)多時(shí)就比較麻煩了,這時(shí)通過(guò)springboot提供了基于類型安全的配置方法,通過(guò)@ConfigurationProperties將properties中的屬性和一個(gè)bean的屬性關(guān)聯(lián),從而實(shí)現(xiàn)類型安全的配置,
比如在application中自定義屬性
note.author=yzh note.name=china
可以通過(guò)
@ConfigurationProperties(prefix="note")
需要注意的是自定義屬性值的前綴統(tǒng)一為note才可以獲取到對(duì)應(yīng)的屬性值.屬性值名稱要跟配置文件里面的名稱對(duì)應(yīng)起來(lái)
同時(shí)通過(guò)這種方法需要生成屬性值的get/set 方法,否則獲取不到對(duì)應(yīng)的屬性值
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java內(nèi)存劃分:運(yùn)行時(shí)數(shù)據(jù)區(qū)域
聽說(shuō)Java運(yùn)行時(shí)環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下2021-07-07springboot整合H2內(nèi)存數(shù)據(jù)庫(kù)實(shí)現(xiàn)單元測(cè)試與數(shù)據(jù)庫(kù)無(wú)關(guān)性
本篇文章主要介紹了springboot整合H2內(nèi)存數(shù)據(jù)庫(kù)實(shí)現(xiàn)單元測(cè)試與數(shù)據(jù)庫(kù)無(wú)關(guān)性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程
這篇文章主要為大家介紹了java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Java設(shè)計(jì)模式之工廠方法模式實(shí)例簡(jiǎn)析
這篇文章主要介紹了Java設(shè)計(jì)模式之工廠方法模式,較為詳細(xì)的分析了Java工廠模式的功能、定義并給出了實(shí)例代碼加以總結(jié)分析,需要的朋友可以參考下2015-11-11SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達(dá)式
這篇文章主要介紹了SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達(dá)式,需要的朋友可以參考下2017-12-12SpringBoot 錯(cuò)誤處理機(jī)制與自定義錯(cuò)誤處理實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringBoot 錯(cuò)誤處理機(jī)制與自定義錯(cuò)誤處理實(shí)現(xiàn)詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Spring cloud restTemplate 傳遞復(fù)雜參數(shù)的方式(多個(gè)對(duì)象)
這篇文章主要介紹了Spring cloud restTemplate 傳遞復(fù)雜參數(shù)的方式(多個(gè)對(duì)象),需要的朋友可以參考下2018-05-05