springboot如何讀取配置文件(application.yml)中的屬性值
在spring boot中,簡單幾步,讀取配置文件(application.yml)中各種不同類型的屬性值:
1、引入依賴:
<!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
2、配置文件(application.yml)中配置各個屬性的值:
myProps: #自定義的屬性和值 simpleProp: simplePropValue arrayProps: 1,2,3,4,5 listProp1: - name: abc value: abcValue - name: efg value: efgValue listProp2: - config2Value1 - config2Vavlue2 mapProps: key1: value1 key2: value2
3、創(chuàng)建一個bean來接收配置信息:
@Component
@ConfigurationProperties(prefix="myProps") //接收application.yml中的myProps下面的屬性
public class MyProps {
private String simpleProp;
private String[] arrayProps;
private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的屬性值
private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的屬性值
private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的屬性值
public String getSimpleProp() {
return simpleProp;
}
//String類型的一定需要setter來接收屬性值;maps, collections, 和 arrays 不需要
public void setSimpleProp(String simpleProp) {
this.simpleProp = simpleProp;
}
public List<Map<String, String>> getListProp1() {
return listProp1;
}
public List<String> getListProp2() {
return listProp2;
}
public String[] getArrayProps() {
return arrayProps;
}
public void setArrayProps(String[] arrayProps) {
this.arrayProps = arrayProps;
}
public Map<String, String> getMapProps() {
return mapProps;
}
public void setMapProps(Map<String, String> mapProps) {
this.mapProps = mapProps;
}
}
啟動后,這個bean里面的屬性就會自動接收配置的值了。
4、單元測試用例:
@Autowired
private MyProps myProps;
@Test
public void propsTest() throws JsonProcessingException {
System.out.println("simpleProp: " + myProps.getSimpleProp());
System.out.println("arrayProps: " + objectMapper.writeValueAsString(myProps.getArrayProps()));
System.out.println("listProp1: " + objectMapper.writeValueAsString(myProps.getListProp1()));
System.out.println("listProp2: " + objectMapper.writeValueAsString(myProps.getListProp2()));
System.out.println("mapProps: " + objectMapper.writeValueAsString(myProps.getMapProps()));
}
測試結(jié)果:
simpleProp: simplePropValue
arrayProps: ["1","2","3","4","5"]
listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]
listProp2: ["config2Value1","config2Vavlue2"]
mapProps: {"key1":"value1","key2":"value2"}
源代碼參考:https://github.com/xujijun/my-spring-boot
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用@Cacheable時設(shè)置部分緩存的過期時間方式
這篇文章主要介紹了SpringBoot使用@Cacheable時設(shè)置部分緩存的過期時間方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
java中g(shù)et()方法和set()方法的作用淺析
這篇文章主要給大家介紹了關(guān)于java中g(shù)et()方法和set()方法的作用,set是是對數(shù)據(jù)進行設(shè)置,而get是對數(shù)據(jù)進行獲取,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-07-07
專屬于程序員的浪漫-Java輸出動態(tài)閃圖iloveyou
這篇文章主要介紹了專屬于程序員的浪漫-Java輸出動態(tài)閃圖iloveyou,具有一定參考價值,需要的朋友可以了解下。2017-11-11
如何解決springboot啟動的時候required a bean of ty
Spring Boot啟動失敗,提示缺少`UserDao`類型的Bean,解決方案一:為`UserDao`接口添加`@Mapper`注解,重新啟動;解決方案二:使用`@MapperScan`注解掃描Mapper接口所在的包2024-12-12
SpringBoot實現(xiàn)網(wǎng)頁消息推送的5種方法小結(jié)
項目開發(fā)中,實時消息推送已成為提升用戶體驗的關(guān)鍵技術(shù),本文將詳細介紹SpringBoot中實現(xiàn)網(wǎng)頁消息推送的幾種主流方案,希望對大家有所幫助2025-03-03

