springboot代碼,注解配置獲取yml,properties文件的map即鍵值對
注解配置獲取yml,properties文件map即鍵值對
yml獲取自定義鍵值對
yml中的鍵值對
test: ? map: ? ? key1: value1 ? ? key2: value2 ? ? key3: value3
pom中的依賴配置
<dependency> ? ? <groupId>org.springframework.boot</groupId> ? ? <artifactId>spring-boot-configuration-processor</artifactId> ? ? <optional>true</optional> </dependency>
代碼:
@Component @ConfigurationProperties(prefix = "test") public class MyConfiguration {? ? ? private String name;? ? ? private Map map = new HashMap();? ? ? public Map getMap() { ? ? ? ? return map; ? ? } ? ? ? public String getName() { ? ? ? ? return name; ? ? } ? ? ? public void setName(String name) { ? ? ? ? this.name = name; ? ? } }
然后在調(diào)用層,如controller注入即可測試:
@Autowired MyConfiguration myConfiguration;
注意:該實(shí)例中的yml文件默認(rèn)是:application.yml文件。也就是說,鍵值對要寫在application.yml文件中;
properties 獲取自定義鍵值對
config.properties 中的鍵值對:
test.map.key1=value1 test.map.key2=value2 test.map.key3=value3
pom中無依賴配置
代碼:
@Component @Configuration @PropertySource(value = {"classpath:/config.properties"}, encoding = "utf-8") @ConfigurationProperties(prefix = "test") public class MyConfiguration {? ? ? private String name;? ? ? private Map map = new HashMap();? ? ? public Map getMap() { ? ? ? ? return map; ? ? } ? ? ? public void setMap(Map map) { ? ? ? ? this.map = map; ? ? } ? ? ? public String getName() { ? ? ? ? return name; ? ? } ? ? ? public void setName(String name) { ? ? ? ? this.name = name; ? ? } }
然后在調(diào)用層,如controller注入即可測試:
@Autowired MyConfiguration myConfiguration;
以上實(shí)例只是針對于map(鍵值對)的獲取,相對于讀取文件,解析文件流來說,方便了許多。
properties配置應(yīng)用,為什么需要使用properties文件
在項(xiàng)目中我們常常會使用Constants常量類,達(dá)到系統(tǒng)全局配置的目的。
但是有些常量需要動態(tài)的配置,如果項(xiàng)目上線后,每次修改Constants.java然后再編譯,再上傳Constants.class文件,再重啟服務(wù)器。這樣導(dǎo)致很繁瑣。
如果將需要修改的配置項(xiàng)寫成properties文件,將會在項(xiàng)目后期維護(hù)帶來很大的方便~!
root.url=http://localhost:8080/BNCAR2/ root.path=E:/ws2/BNCAR2/rel/ mall.partstype.url=mall.jsp?rowid=0&typeFlag=0&pid=35 mall.carproduct.url=mall.jsp?rowid=0&typeFlag=1&pid=74 mall.partstype.typename1=\u4FDD\u517B\u5957\u88C5 mall.partstype.typename2=\u7CFB\u7EDF\u517B\u62A4 mall.partstype.typename3=\u8F6E\u80CE\u8F6E\u6BC2 network.province.name1=\u4E0A\u6D77 network.province.name2=\u6C5F\u82CF pageutil.persize=10
注意名=值之間不要留空格,注意名的命名習(xí)慣,一般為小寫,層級關(guān)系之間用點(diǎn)號分隔。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Idea配置maven-tomcat-plugin插件實(shí)現(xiàn)項(xiàng)目部署
今天小編就為大家分享一篇關(guān)于Idea配置maven-tomcat-plugin插件實(shí)現(xiàn)項(xiàng)目部署,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02淺談Spring Cloud中的API網(wǎng)關(guān)服務(wù)Zuul
這篇文章主要介紹了淺談Spring Cloud中的API網(wǎng)關(guān)服務(wù)Zuul,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10IDEA 如何控制編輯左側(cè)的功能圖標(biāo)ICON(操作步驟)
很多朋友被idea左側(cè)的圖標(biāo)不見了這一問題搞的焦頭爛額,不知道該怎么操作,今天小編就交大家如何控制編輯左側(cè)的功能圖標(biāo) ICON,文字內(nèi)容不多,主要通過兩張截圖給大家說明,感興趣的朋友一起看看吧2021-05-05java的新特性反射機(jī)制應(yīng)用及操作示例詳解
這篇文章主要為大家介紹了java的新特性反射機(jī)制的操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Springboot熱部署實(shí)現(xiàn)原理及實(shí)例詳解
這篇文章主要介紹了Springboot熱部署實(shí)現(xiàn)原理及實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05