java - Spring Boot + Yaml + @PropertySource + @Con

我正在尝试使用 @ConfigurationPropertiesexternal.yml 属性注入(inject) POJO 并使用 导入我的 external.yml 文件>@PropertySource。所有其他的都被注入(inject)到 POJO 但不是一个复杂的列表。

一个。我尝试将 @NestedConfigurationProperty 用于复杂列表和 map 。 b.我尝试将复杂的 POJO 作为内部静态和外部类。 C。尝试了 @EnableConfigurationProperties 注释。等等

ExternalProp.java

   @Component
   @PropertySource(value = "classpath:external.yml", encoding = "UTF-8")
   @ConfigurationProperties

   @Data
   public class ExternalProp {

    private String bla;
    private List<Person> persons;
    private List<String> other;

    @Data
    public static class Person {

        private int age;
        private String name;
        private Map<String, String> args;
    }

}

external.yml

   bla: bkdfjgkdf
   persons:
   -  age: 12
      name: bla1
      args:
        a0: a0dev
        a1: a1dev
        a2: a2dev
   -  age: 12
      name: bla2
      args:
        b0: b0dev
        b1: b1dev
        b2: b2dev
   strings: bla, bla1

bla: bkdfjgkdfstrings: bla, bla1 已被正确注入(inject),但不是人。我哪里出错了。

并将相同的 persons 对象复制到 application.yml 文件,然后,BOOM,正确获取值。

我期待一个包含一些 Map args 的人员列表。

最佳答案

我相信这与您的 yml 格式有关。 试试这个

external.yml

   bla: bkdfjgkdf
   persons:
      -  age: 12
         name: bla1
         args:
           a0: a0dev
           a1: a1dev
           a2: a2dev
      -  age: 12
         name: bla2
         args:
           b0: b0dev
           b1: b1dev
           b2: b2dev
   strings: bla, bla1

关于java - Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + 属性源文件中的列表不注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57409781/

相关文章:

android - 如何在 kotlin 中使用 http 请求将图像上传到服务器?

python - 无法从 git 子模块导入

reactjs - 在 React BootStrap 中的行元素之间添加空格

visual-studio-app-center-distribute - 是否可以在 AppCen

reactjs - GraphQL 返回数据但在代码中未定义

javascript - 是否可以禁用整个主体(包括内部 iFrame)的填写付款表格?

jpa - Spring Data JPA Projection嵌套列表投影接口(interface

angular - 如何修复 "Could not determine the dependenci

python-3.x - 如何修复Python3.7.1中的 "No module named '编

javascript - 错误 [prerender-spa-plugin] - 无法预呈现所有路线