Spring?Boot如何配置yml配置文件定義集合、數(shù)組和Map
一、@value 獲取配置文件
在平時的yml配置文件中,我們經(jīng)常使用到配置基本數(shù)據(jù)類型的字符串,比如配置日志文件的寫法如下:
# 配置日志輸出級別
logging:
# 指定logback配置文件的位置
config: classpath:logback-spring.xml
# 文件日志要輸出的路徑
path: E:/logs/springboot_server
# 日志的輸出級別
level:
root: info獲取屬性值的話可以通過@value 注解來實現(xiàn),如下:
@Value("${logging.path}")
private String path; // 獲取日志文件的輸出路徑二、 List集合獲取配置文件
第一種方法
# 攔截器路徑攔截或者不攔截配置
interceptorconfig:
path:
#該路徑下任何類型請求均攔截
include:
- /api/v1/token/api_token
- /api/v1/yibaotong/save第二種方法
# 攔截器路徑攔截或者不攔截配置
interceptorconfig:
path:
#該路徑下任何類型請求均攔截
include: [/api/v1/token/api_token,/api/v1/yibaotong/save]總結
這里需要注意的是,定義List集合不能用@value 注解來獲取List集合的所有值,需要定義一個配置類bean,然后使用 @ConfigurationProperties 注解來獲取list集合值,做法如下:
@Data
@Component
@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置文件的前綴
public class InterceptorPathBean
{
/*
* 需要攔截的路徑
*/
private List<String> include;
}三、定義對象list集合獲取配置文件
單個對象List
首先創(chuàng)建一個user對象如下:
@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注解獲取對象集合值:
@Data
@Component
@ConfigurationProperties(prefix = "jwt") // 配置 文件的前綴
public class JwtConfigBean
{
/**
* 用戶列表
*/
private List<User> userlist;
}List對象中包含List
定義配置bean使用@ConfigurationProperties注解獲取對象集合值:
@Data
@Component
@ConfigurationProperties(prefix = "jwt") // 配置 文件的前綴
public class JwtConfigBean {
/**
* 用戶列表
*/
private List<UserTest> userList;
@Data
private static class UserTest {
private String appId;
private List<String> passwordList;
}
}yml 文件配置
jwt:
userList:
- appId: '121212'
passwordList: '活動時間流程節(jié)點-PromoTimeValidNode,活動時間流程節(jié)點-PromoTimeValidNode2'
- appId: 'werw3313'
passwordList: '活動時間流程節(jié)點-PromoTimeValidNode,活動時間流程節(jié)點-PromoTimeValidNode2'四、數(shù)組獲取配置文件
yaml 格式如下:
interceptorconfig:
path:
includes: /api/v1,/api/v2 #注意要用逗號分隔開可以通過@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;
}
@Data
@Component
@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前綴
public class InterceptorPathBean
{
private String[] includes;
}五、定義Map集合配置文件
yaml 格式如下:
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;
}以上就是Spring Boot yml配置文件定義基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的方式;
六、參考鏈接
spring boot 的yml配置文件定義list集合、數(shù)組和map以及使用中出現(xiàn)的錯誤
到此這篇關于Spring Boot 優(yōu)雅配置yml配置文件定義集合、數(shù)組和Map的文章就介紹到這了,更多相關Spring Boot 配置yml配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java 中使用數(shù)組存儲和操作數(shù)據(jù)
本文將介紹Java中常用的數(shù)組操作方法,通過詳細的示例和解釋,幫助讀者全面理解和掌握這些方法,具有一定的參考價值,感興趣的可以了解一下2023-09-09
SpringBoot2.0+阿里巴巴Sentinel動態(tài)限流實戰(zhàn)(附源碼)
這篇文章主要介紹了SpringBoot2.0+阿里巴巴Sentinel動態(tài)限流實戰(zhàn)(附源碼),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
基于SpringBoot整合oauth2實現(xiàn)token認證
這篇文章主要介紹了基于SpringBoot整合oauth2實現(xiàn)token 認證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
MyBatisPlus分頁插件IPage用法實現(xiàn)
本文主要介紹了MyBatisPlus分頁插件IPage用法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-06-06
Java中@ConfigurationProperties實現(xiàn)自定義配置綁定問題分析
這篇文章主要介紹了@ConfigurationProperties實現(xiàn)自定義配置綁定問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08

