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;
注意:該實例中的yml文件默認是: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;
以上實例只是針對于map(鍵值對)的獲取,相對于讀取文件,解析文件流來說,方便了許多。
properties配置應(yīng)用,為什么需要使用properties文件
在項目中我們常常會使用Constants常量類,達到系統(tǒng)全局配置的目的。
但是有些常量需要動態(tài)的配置,如果項目上線后,每次修改Constants.java然后再編譯,再上傳Constants.class文件,再重啟服務(wù)器。這樣導(dǎo)致很繁瑣。
如果將需要修改的配置項寫成properties文件,將會在項目后期維護帶來很大的方便~!
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
注意名=值之間不要留空格,注意名的命名習慣,一般為小寫,層級關(guān)系之間用點號分隔。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Idea配置maven-tomcat-plugin插件實現(xiàn)項目部署
今天小編就為大家分享一篇關(guān)于Idea配置maven-tomcat-plugin插件實現(xiàn)項目部署,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧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-10
IDEA 如何控制編輯左側(cè)的功能圖標ICON(操作步驟)
很多朋友被idea左側(cè)的圖標不見了這一問題搞的焦頭爛額,不知道該怎么操作,今天小編就交大家如何控制編輯左側(cè)的功能圖標 ICON,文字內(nèi)容不多,主要通過兩張截圖給大家說明,感興趣的朋友一起看看吧2021-05-05

