在SpringBoot 中從application.yml中獲取自定義常量方式
要注意的地方是 application.yml 中不能用駝峰式寫法(systemParams)要改成system-params
方法一:
引入依賴:
<!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
配置文件(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
創(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里面的屬性就會自動接收配置的值了。
單元測試用例:
@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"}
方法二:
不用寫 set 方法,直接給注解。
前提是要裝一個插件:lombok 。 直接在插件中搜索到它,裝上就行了
直接獲取一個屬性
image:
location: D:/images/
/**
* 在配置文件中配置的文件保存路徑
*/
@Value("${image.location}")
private String location;
以上這篇在SpringBoot 中從application.yml中獲取自定義常量方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springMVC之HandlerExceptionResolver使用
這篇文章主要介紹了springMVC之HandlerExceptionResolver使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù)
RedisTemplate是Spring Data Redis提供的一個用于操作Redis的模板類,本文主要介紹了java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù),具有一定的參考價值,感興趣的可以了解一下2024-09-09
Java將字符串String轉(zhuǎn)換為整型Int的兩種方式
這篇文章主要介紹了Java如何將字符串String轉(zhuǎn)換為整型Int,在 Java 中要將 String 類型轉(zhuǎn)化為 int 類型時,需要使用 Integer 類中的 parseInt() 方法或者 valueOf() 方法進(jìn)行轉(zhuǎn)換,本文通過實例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-04-04
Springboot+Mybatis中typeAliasesPackage正則掃描實現(xiàn)方式
這篇文章主要介紹了Springboot+Mybatis中typeAliasesPackage正則掃描實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
java統(tǒng)計字符串中重復(fù)字符出現(xiàn)次數(shù)的方法
這篇文章主要介紹了java統(tǒng)計字符串中重復(fù)字符出現(xiàn)次數(shù)的方法,涉及java針對字符串的遍歷與判斷相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
深入理解Java中的final關(guān)鍵字_動力節(jié)點Java學(xué)院整理
Java中的final關(guān)鍵字非常重要,它可以應(yīng)用于類、方法以及變量。這篇文章中我將帶你看看什么是final關(guān)鍵字以及使用final的好處,具體內(nèi)容詳情通過本文學(xué)習(xí)吧2017-04-04
Spring多定時任務(wù)@Scheduled執(zhí)行阻塞問題解決
這篇文章主要介紹了Spring多定時任務(wù)@Scheduled執(zhí)行阻塞問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

