如何解决@value获取不到yaml数组的问题
更新时间:2024年11月18日 08:56:29 作者:follow_me!
文章介绍了在使用YAML配置文件时,通过@Value注解获取整数和数组列表的配置方法,并提供了两种解决方案:一种适用于非嵌套列表,另一种适用于嵌套列表等复杂配置
一、yaml中的配置
如下:
andawell:
permission:
allPermissionSign: [["航设公司","军品销售中心"],["民用航空事业部","民航销售中心"],["航设公司","军品销售中心"],["航设公司","军品销售中心"]]
orgName:
- 航设公司
- 民用航空事业部
- 航设公司
- 航设公司
activeOrg: 1二、获取
1.整数使用@Value可正常获取:
@Value("${andawell.permission.activeOrg}")
int permissionActiveOrg;- 获取数组/列表使用@Value时,无法正常获取:
@Value("${andawell.permission.allPermissionSign}")
List<List<string>> allPermissionSign;三、解决方案
解决方案1
对于非嵌套列表:如:swl :[a,b,c,d],
需要更改成:swl: a,b,c,d的形式;
@Value(“${swl}”) 或者 @Value("#{'${swl}'.split(',')}")
解决方案2
对于嵌套列表等复杂的配置:如:
allPermissionSign: [["航设公司","军品销售中心"],["民用航空事业部","民航销售中心"], ["航设公司","军品销售中心"],["航设公司","军品销售中心"]]
采用
@ConfigurationProperties(prefix = "andawell.permission")
获取:
@Component
@Data
@ConfigurationProperties(prefix = "andawell.permission")
public class DataSyncConfig {
/**
* 各个组织中具有所有权限的中心名称,依次为【航设、民航、智能、信息】下的所有权限的部门
*/
List<List<String>> allPermissionSign;
/**
* 各个组织的全称,依次为【航设、民航、智能、信息】
*/
List<String> orgName;
/**
* 生效的组织,【1航设、2民航、3智能、4信息】
*/
Integer activeOrg;
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java策略枚举:消除在项目里大批量使用if-else的优雅姿势
这篇文章主要给大家介绍了关于Java彻底消灭if-else的8种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2021-06-06
MyBatis简介与配置MyBatis+Spring+MySql的方法
MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。这篇文章主要介绍了MyBatis简介与配置MyBatis+Spring+MySql的方法,需要的朋友可以参考下2017-04-04
基于SpringBoot与AES实现接口响应数据加密的代码示例
最近项目中为了保证数据安全,要求接口对关键响应数据,比如敏感信息(如用户信息、权限数据、业务关键内容等)必须加密传输,所以,本文将围绕一个实际的SpringBoot应用场景,基于Hutool工具包中的AES加密能力,封装一个 接口响应数据自动加密的解决方案2025-08-08
解决 java.lang.NoSuchMethodError的错误
这篇文章主要介绍了解决 java.lang.NoSuchMethodError的错误的相关资料,需要的朋友可以参考下2017-06-06


最新评论