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; } }
然後在調用層,如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; } }
然後在調用層,如controller註入即可測試:
@Autowired MyConfiguration myConfiguration;
以上實例隻是針對於map(鍵值對)的獲取,相對於讀取文件,解析文件流來說,方便瞭許多。
properties配置應用,為什麼需要使用properties文件
在項目中我們常常會使用Constants常量類,達到系統全局配置的目的。
但是有些常量需要動態的配置,如果項目上線後,每次修改Constants.java然後再編譯,再上傳Constants.class文件,再重啟服務器。這樣導致很繁瑣。
如果將需要修改的配置項寫成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
註意名=值之間不要留空格,註意名的命名習慣,一般為小寫,層級關系之間用點號分隔。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot之@Value獲取application.properties配置無效的解決
- Springboot yml如何獲取系統環境變量的值
- 詳解SpringBoot註解讀取配置文件的方式
- 深入理解springboot中配置文件application.properties
- spring boot項目application.properties文件存放及使用介紹