gpt4 book ai didi

java - Spring Boot + Yaml + @PropertySource + @ConfigurationProperties + 属性源文件中的列表不注入(inject)

转载 作者:行者123 更新时间:2023-12-05 08:11:26 27 4
gpt4 key购买 nike

我正在尝试使用 @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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com