将YAML属性绑定到Map <string,list <string =“”>&gt;用Spring Boot输入

时间:2015-05-28 14:57:47

标签: java properties spring-boot yaml

我知道如果我将属性放在.yml文件中:

list
  - item 1
  - item 2

我可以将它们绑定到java.util.List或Set类型。如果yaml属性是这样的:

map:
  key1: value1
  key2: value2

我可以将它绑定到Map。我想知道是否可以将yml属性绑定到Map&gt;键入..

2 个答案:

答案 0 :(得分:2)

尝试添加:

private Map<String, List<String>> keysList;

并将其放入.yml文件中

keysList:
    key1: 
        - value1
        - value2  
    key2: 
        - value2
        - value3
    key3: 
        - value3
        - value4

结果应该是List mapping:

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}} < / p>

答案 1 :(得分:0)

感谢它对我有帮助:)我在这里发布更具描述性的答案。

配置类-

@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

如果您的键上有空格,则将键放在[键4]中。