springboot yml配置文件定義list集合、數(shù)組和map以及使用中的錯(cuò)誤
1. 在平時(shí)的yml配置文件中
我們經(jīng)常使用到配置基本數(shù)據(jù)類型的字符串,比如配置日志文件的寫法如下:
# 配置日志輸出級(jí)別 logging: # 指定logback配置文件的位置 config: classpath:logback-spring.xml # 文件日志要輸出的路徑 path: E:/logs/springboot_server # 日志的輸出級(jí)別 level: root: info
獲取屬性值的話可以通過@value 注解來實(shí)現(xiàn),如下:
@Value("${logging.path}") private String path; // 獲取日志文件的輸出路徑
2. 下面說一下
如何在yml配置文件中定義list集合、對(duì)象集合、數(shù)組以及map集合等
2.1定義list集合
# 攔截器路徑攔截或者不攔截配置 interceptorconfig: path: #該路徑下任何類型請(qǐng)求均攔截 include: - /api/v1/token/api_token - /api/v1/yibaotong/save
或者寫成
# 攔截器路徑攔截或者不攔截配置 interceptorconfig: path: #該路徑下任何類型請(qǐng)求均攔截 include: [/api/v1/token/api_token,/api/v1/yibaotong/save]
這里需要注意的是,定義list集合不能用@value注解來獲取list集合的所有值,需要定義一個(gè)配置類bean,然后使用
@ConfigurationProperties注解來獲取list集合值,
做法如下:
@Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置文件的前綴 public class InterceptorPathBean { /* * 需要攔截的路徑 */ private List<String> include; }
如果使用@value注解會(huì)報(bào)錯(cuò);
2.2 定義對(duì)象list集合
首先創(chuàng)建一個(gè)user對(duì)象如下:
@Data public class User implements Serializable { private static final long serialVersionUID = 1L; private String appId; private String password; }
然后yml配置文件的寫法如下:
jwt: userlist: - appId: YiBaoTong password: 123456 - appId: ZhiKe password: 123456
定義配置bean使用@ConfigurationProperties注解獲取對(duì)象集合值:
@Data @Component @ConfigurationProperties(prefix = "jwt") // 配置 文件的前綴 public class JwtConfigBean { /** * 用戶列表 */ private List<User> userlist; }
2.3 定義數(shù)組
格式如下:
interceptorconfig: path: includes: /api/v1,/api/v2 #注意要用逗號(hào)分隔開
可以通過@value注解獲取數(shù)組值,如下:
@Value("${interceptorconfig.path.includes}") private String[] includes;
也可以通過創(chuàng)建配置類bean,使用@ConfigurationProperties注解獲取,如下:
@Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前綴 public class InterceptorPathBean { private String[] includes; }
2.4 定義map集合
如下:
interceptorconfig: path: maps: {name: 小明,age: 24}
或者寫成:
interceptorconfig: path: maps: name: 小明 age: 24
通過創(chuàng)建配置類bean,使用@ConfigurationProperties注解獲取map值,如下:
@Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前綴 public class InterceptorPathBean { private Map<String , String> maps; }
總結(jié)
以上就是spring boot yml配置文件定義基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的方式。
這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JPA @Basic單表查詢?nèi)绾螌?shí)現(xiàn)大字段懶加載
這篇文章主要介紹了JPA @Basic單表查詢?nèi)绾螌?shí)現(xiàn)大字段懶加載的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java 數(shù)據(jù)結(jié)構(gòu)七大排序使用分析
這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開發(fā)中,對(duì)排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時(shí)候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下2022-04-04Eclipse中maven異常Updating Maven Project的統(tǒng)一解決方案
今天小編就為大家分享一篇關(guān)于Eclipse中maven異常Updating Maven Project的統(tǒng)一解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12SpringBoot整合Redisson的步驟(單機(jī)版)
Redisson非常適用于分布式鎖,而我們的一項(xiàng)業(yè)務(wù)需要考慮分布式鎖這個(gè)應(yīng)用場(chǎng)景,于是我整合它做一個(gè)初步簡單的例子(和整合redis一樣)。2021-05-05mybatis整合spring實(shí)現(xiàn)開啟mapper.xml映射文件掃描
這篇文章主要介紹了mybatis整合spring實(shí)現(xiàn)開啟mapper.xml映射文件掃描,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Mybatis Generator最完美配置文件詳解(完整版)
今天小編給大家整理了一篇關(guān)于Mybatis Generator最完美配置文件詳解教程,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-11-11Java中注解@Async實(shí)現(xiàn)異步及導(dǎo)致失效原因分析
Async注解用于聲明一個(gè)方法是異步的,當(dāng)在方法上加上這個(gè)注解時(shí)將會(huì)在一個(gè)新的線程中執(zhí)行該方法,而不會(huì)阻塞原始線程,這篇文章主要給大家介紹了關(guān)于Java中注解@Async實(shí)現(xiàn)異步及導(dǎo)致失效原因分析的相關(guān)資料,需要的朋友可以參考下2024-07-07intelliJ IDEA 多行選中相同內(nèi)容的快捷鍵分享
這篇文章主要介紹了intelliJ IDEA 多行選中相同內(nèi)容的快捷鍵分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02