gpt4 book ai didi

Spring:@ConfigurationProperties中的@NestedConfigurationProperty列表

转载 作者:行者123 更新时间:2023-12-03 03:22:02 34 4
gpt4 key购买 nike

您好,我正在尝试启动并运行以下配置。

@ConfigurationProperties(prefix="my")
public class Config {

@NestedConfigurationProperty
private List<ServerConfiguration> servers = new ArrayList<ServerConfiguration>();

public List<ServerConfiguration> getServers() {
return this.servers;
}
}

@ConfigurationProperties(prefix = "server")
public class ServerConfiguration {
private String name;
private String description;
}

所以,我想要将多个服务器配置嵌套在对象中。我尝试使用以下属性文件设置属性。我可以看到列表是按项目添加的,但服务器的成员从未设置(名称、描述)

my.servers[0].name=test
my.servers[0].server.name=test
my.servers[1].name=test
my.servers[1].server.name=test

最佳答案

扩展 Maciej 已经说过的内容。

@ConfigurationProperties 只能在 root 对象(即负责处理给定前缀的对象)上设置。不需要用它来注释嵌套对象。

@NestedConfigurationProperty 由元数据生成器使用(表示属性不是单个值,而是我们应该探索以生成其他元数据的属性) .对于List,没有任何有限数量的属性,因此元数据必须停在列表处。

无论如何,每个单一属性都需要一个 getter 和一个 setter。我们不进行字段绑定(bind),并且需要一个公共(public) getter 以避免暴露元数据中不必要的属性。

关于Spring:@ConfigurationProperties中的@NestedConfigurationProperty列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985570/

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