【问题标题】:Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + List in Property Source file not injectingSpring Boot + Yaml + @PropertySource + @ConfigurationProperties + 属性源文件中的列表未注入
【发布时间】:2019-12-15 23:58:11
【问题描述】:

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

一个。我尝试将@NestedConfigurationProperty 用于复杂的列表和地图。 湾。我尝试将复杂的 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 已正确注入,但未注入人员。我在哪里犯错了。

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

我期待一份人员列表,其中包含一些地图args

【问题讨论】:

  • 所以问题出在你使用 PropertySource 的时候对吗?如果它在没有 PropertySource 的 application.yml 中,它可以工作
  • @vanillaSugar - 是的。其他简单的 POJO 也不起作用。
  • 我刚刚验证过,如果它是 external.properties 而不是 external.yml 它工作正常。
  • PropertySource 不支持 YAML
  • @SimonMartinelli 非常感谢,经过几个小时的搜索,这是我的错误

标签: java spring-boot yaml


【解决方案1】:

我相信这与您的 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

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2021-02-17
    • 2017-08-18
    • 2016-01-26
    • 2018-09-25
    • 2020-02-10
    相关资源
    最近更新 更多