繁体   English   中英

将 YAML 属性绑定到 Map <String, List<String> &gt; 使用 Spring Boot 键入

[英]Bind YAML properties to Map<String, List<String>> type with Spring Boot

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

list
  - item 1
  - item 2

我可以将它们绑定到java.util.ListSet类型。 另外如果 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM