使用Spring-Boot 2.1从.yml中读取对象列表

时间:2019-03-31 19:04:32

标签: java spring-boot yaml configurationproperty

我需要创建@ConfigurationProperties来读取包含复杂对象列表的.yml文件。

Spring-Boot似乎与此有关,所以我逐步进行尝试,并尝试首先加载字符串列表:

.yml:

qwer: asdf
strings:
    - Apple
    - Orange
    - Strawberry
    - Mango

配置类:

@Component
@PropertySource(value = {"tsp_client.yaml", "file:tsp_client.yaml"}, ignoreResourceNotFound = true)
@ConfigurationProperties
public class TSPClientConfig {
    public String qwer;

    public List<String> strings;

    public String getQwer() {
        return qwer;
    }

    public void setQwer(String qwer) {
        this.qwer = qwer;
    }

    public List<String> getStrings() {
        return strings;
    }

    public void setStrings(List<String> strings) {
        this.strings = strings;
    }
}

,与此同时,我仍然得到大小为0的列表。qewr属性可以很好地映射。 当我从here复制字符串时,可以使字符串缩进。

那么,您能告诉我spring是否对此有问题,或者我在这里做错了什么?最终,我需要在列表中包含复杂的对象。

Spring-Boot:2.1.2。释放

1 个答案:

答案 0 :(得分:0)

显然杰克逊也有一个Yaml阅读器: https://dzone.com/articles/read-yaml-in-java-with-jackson

如果没有列表设置器,您可以做

setStrings(String[] ar){
this.strings=Arrays.asList(ar);
}