[英]How can I set a Map field in my properties without having to list each key/value pair individually?
我有一个带有服务的Spring Boot应用程序,该服务具有Map <String, List<String>>
字段。 映射是从属性文件中获取的,该文件的设置如下:
mapField.key1[0]=value10
mapField.key1[1]=value11
mapField.key1[2]=value12
mapField.key2[0]=value20
如何设置如下:
mapField={key1=[value10, value11, value12], key2=[value20]}
没有遇到转换错误:
Failed to bind properties under 'mapField' to Map<String, List<String>>
您的映射有点复杂,因此建议您定义一个ConfigurationProperties。
@Configuration
@ConfigurationProperties
public class MapFieldConfig {
private Map<String,List<String>> myMap;
public Map<String, List<String>> getMyMap() {
return myMap;
}
public void setMyMap(Map<String, List<String>> myMap) {
this.myMap = myMap;
}
}
通过这种方式,您可以自动装配包含目标配置的新对象:
@Autowired
MapFieldConfig mapFieldConfig;
您的application.properties文件将是:
myMap.key1=a,b,c
myMap.key2=d,c,f
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.