spring boot 程式碼、註解配置獲取yml、properties檔案中的map即鍵值對
阿新 • • 發佈:2019-01-05
一、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(鍵值對)的獲取,相對於讀取檔案,解析檔案流來說,方便了許多。希望可以用到時幫到看見的你,如有更好策略,可以留言,謝謝!