yml⽂件⾥的数组使⽤@Value@ConfigurationProperties
⽂章⽬录
前⾔
最近有个功能突然有个需求,需要在yml配置⽂件⾥配置多条路径,需要动态获取配置⽂件⾥的参数,根据接⼝接收的参数判断,使⽤对应的配置
就了解到yml数组,遂记录
⼀、 yml数组形式
upload-record-paths:
basepath: filerecord
list:
-name:111
path:111
-name:222
path:222
js中escape的用法其中对象对应Java元素结构为map,⼀个 “ - ” 代表⼀组,整体是⼀个List,因为@Value不⽀持取复杂对象且限制较多,除了⼀个值⼀个值的取,只能使⽤SpEL(后⽂有解释),所以我使⽤配置类的⽅式
⼆、配置类取对象
@Configuration
@ConfigurationProperties(prefix ="upload-record-paths")
@Data
public class UploadRecordProperties {
public static List<Map<String, String>> list;//static 才能拿配置值
}
其中upload-record-paths为yml配置⽂件前缀,使⽤也很简单,代码中直接
// 动态获取配置⽂件 - 或者使⽤@Autowried注⼊配置对象,通过get获取
List<Map<String, String>> list = List();
String path =null;
for(Map map : list){
String name =(String) ("name");
if(name.equalsIgnoreCase(fileType)){
path = recordbasepath + File.separator +(String) ("path")+ File.separator + rocordId;
}
}
if(StringUtils.isBlank(path)){
// 没有对应类型
("没有到匹配的⽂件类型:"+ fileType);
}
⼤概是以上流程。
我个⼈有个参考使⽤⽅式可取出
@Value("#{'${-list:}'.empty ? null : '${-list:}'.split(',')}")
private List<String> list;properties是什么文件
对应的yml格式为
# 通过,分隔使⽤的参数
com:
xxx:
百度资源搜索引擎xxx-list:
.
替代mysqldwt,.dwg,.dxf,.zip,.rar,.mxd
冒泡排序递减⽂章发布⼀个⽉后,发现了⼀个博主的好⽂章解释了为啥能这样,晒这
[@value 数组_SpringBoot @Value 读取配置,太强⼤了!](⽂章发布⼀个⽉后,发现了⼀个博主的好⽂章,晒这,能不使⽤配置类使⽤三、SpEL
前⾯说到@Value取值限制较多,这是因为除了正常的⼀个个参数使⽤$获取,就只剩下SpEL的⽅式了。
perl是否安装成功⾸先看看使⽤@Value和@ConfigurationProperties配置类的⽅式有什么不同
图⽚来⾃参考⽂章
我们可以看出使⽤@ConfigurationProperties配置类⽐@Value⽀持的⽅法多,其中松散绑定是
⽐如说有个yml参数是 file-upload
在配置类中可以写成file-upload或者fileUpload
其他⼏种可以查看参考材料⾥的⽂章了解。
四、参考材料
这是第三部分的参考⽂章:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论