簡體   English   中英

Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + 屬性源文件中的列表未注入

[英]Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + List in Property Source file not injecting

我正在嘗試使用@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,正確獲取值。

我期待有一些 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM