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]
總結(jié)
這里需要注意的是,定義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)的錯誤
到此這篇關(guān)于Spring Boot 優(yōu)雅配置yml配置文件定義集合、數(shù)組和Map的文章就介紹到這了,更多相關(guān)Spring Boot 配置yml配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot如何配置獲取request中body的json格式參數(shù)
這篇文章主要介紹了SpringBoot如何配置獲取request中body的json格式參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06java反射機(jī)制及beanUtils的實現(xiàn)原理分析
本文介紹了Java的反射機(jī)制、VO、DTO、PO的概念以及BeanUtils的實現(xiàn)原理和簡單示例,通過反射可以在運行時動態(tài)操作類、方法和字段,BeanUtils用于在不同bean之間進(jìn)行屬性復(fù)制2024-12-12SpringBoot整合MyBatis和MyBatis-Plus請求后不打印sql日志的問題解決
本文主要介紹了SpringBoot整合MyBatis和MyBatis-Plus請求后不打印sql日志的問題解決文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07Java Mybatis框架Dao層的實現(xiàn)與映射文件以及核心配置文件詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10Quarkus中RESTEasy?Reactive集成合并master分支
這篇文章主要為大家介紹了Quarkus中RESTEasy?Reactive集成合并master分支的詳細(xì)作用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02