[英]Spring Boot injecting Map values from .properties and .yaml using ConfigurationProperties
[英]Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + List in Property Source file not injecting
我正在嘗試使用@ConfigurationProperties
將external.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: bkdfjgkdf
和strings: 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.