Java 弹簧靴&x2B;Yaml&x2B@PropertySource+@配置属性+;属性源文件中的列表未插入
我正在尝试使用Java 弹簧靴&x2B;Yaml&x2B@PropertySource+@配置属性+;属性源文件中的列表未插入,java,spring-boot,yaml,Java,Spring Boot,Yaml,我正在尝试使用@ConfigurationProperties将external.yml属性注入POJO,并使用@PropertySource导入我的external.yml文件。所有其他的都被注入到POJO中,但不是一个复杂的列表 a。我尝试对复杂列表和映射使用@NestedConfigurationProperty。 B我尝试将复杂的POJO作为内部静态类和外部类。 C尝试了@EnableConfigurationProperties注释。等 ExternalProp.java @组成部分
@ConfigurationProperties
将external.yml
属性注入POJO,并使用@PropertySource
导入我的external.yml
文件。所有其他的都被注入到POJO中,但不是一个复杂的列表
a。我尝试对复杂列表和映射使用@NestedConfigurationProperty
。
B我尝试将复杂的POJO作为内部静态类和外部类。
C尝试了@EnableConfigurationProperties
注释。等
ExternalProp.java
@组成部分
@PropertySource(value=“classpath:external.yml”,encoding=“UTF-8”)
@配置属性
@资料
公共类外部属性{
私人字符串bla;
私人名单人员;
私人名单其他;
@资料
公共静态类人员{
私人互联网;
私有字符串名称;
私有映射参数;
}
}
bla:bkdfjgkdf
和strings:bla、bla1
已正确注入,但没有人。我哪里出错了
将相同的persons
对象复制到application.yml
文件中,然后发出隆隆声,正确获取值
我期待着一个有一些Map
args
的人员列表,我相信这与您的yml格式有关。
试试这个
所以问题是当您使用PropertySource时,对吗?如果它在application.yml中,则它可以工作PropertySource@vanillaSugar-是的。其他简单的POJO也不工作。我只是验证了,如果它是external.properties而不是external.yml,那么它工作正常。PropertySource不支持YAML@SimonMartinelli非常感谢你,经过几个小时的搜索,这是我的错误
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
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