我有一个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>>
答案 0 :(得分:0)
您的映射稍微复杂一点,所以我建议定义一个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