![](/img/trans.png)
[英]Spring Boot + Docker Compose: How to override 'Map<String, List<String>>' environment variable from yaml properties
[英]Bind YAML properties to Map<String, List<String>> type with Spring Boot
我知道如果我将属性放在 .yml 文件中:
list
- item 1
- item 2
我可以将它们绑定到java.util.List
或Set
类型。 另外如果 yaml 属性是这样的:
map:
key1: value1
key2: value2
我可以将它们绑定到地图。 我想知道是否可以将 yml 属性绑定到Map<String, List<String>>
类型..
尝试添加这个:
private Map<String, List<String>> keysList;
并将其放入您的 .yml 文件中
keysList:
key1:
- value1
- value2
key2:
- value2
- value3
key3:
- value3
- value4
结果应该是列表映射:
keysList={key1=[value1, value2], key2=[value2, value3], key3=[value3, value4]}
如果你用这种方式
private Map keysList;
你会得到地图映射。
keysList={key1={0=value1, 1=value2}, key2={0=value2, 1=value3}, key3={0=value3, 1=value4}}
谢谢它帮助了我 :) 我在这里发布的更具描述性的答案。
配置类 -
@ConfigurationProperties(prefix = "configuration.mymapwithlist")
public class ConfigUtilClass implements IConfigUtilClass {
private Map<String, List<String>> myMap = new HashMap<>();
@Override
public Map<String, List<String>> getMyMap() {
return myMap;
}
}
yaml -
configuration:
mymapwithlist:
myMap:
key1:
- value 1
- value 2
- value 3
- value 4
key2:
- value 1
- value 2
- value 3
- value 4
'[key 3]':
- value 1
- value 2
- value 3
- value 4
'[key 4]':
- value 1
- value 2
- value 3
- value 4
如果你的钥匙有空格,那么把钥匙放在 [ key 4 ] 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.