我必须将一个列表集成到Spring Boot的YAML配置文件中,并且看不到如何继续。Spring Boot YAML配置和列表
我已经看到相关的其他问题:Spring Boot yaml configuration for a list of strings
而且有同样的问题。
我应用了该解决方案并解决了问题,并发现该解决方案有点棘手。
有没有办法让列表与@Value一起工作?
如果不是现在,预计未来会如何?
非常感谢。
我必须将一个列表集成到Spring Boot的YAML配置文件中,并且看不到如何继续。Spring Boot YAML配置和列表
我已经看到相关的其他问题:Spring Boot yaml configuration for a list of strings
而且有同样的问题。
我应用了该解决方案并解决了问题,并发现该解决方案有点棘手。
有没有办法让列表与@Value一起工作?
如果不是现在,预计未来会如何?
非常感谢。
根据本文档,您可以在yaml中执行一个列表。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml
YAML列表被表示为具有[指数] dereferencers属性键,例如此YAML:
my:
servers:
- dev.bar.com
- foo.bar.com
将被转化为这些属性:
my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com
绑定到样性质使用Spring DataBinder实用程序(这是@ConfigurationProperties的作用),您需要在类型为java.util.List(或Set)的目标Bean中拥有一个属性,并且您需要提供setter或初始化i t具有可变值,例如这将绑定到以上属性
@ConfigurationProperties(prefix="my")
public class Config {
private List<String> servers = new ArrayList<String>();
public List<String> getServers() {
return this.servers;
}
}
属性文件格式会比YAML更简单吗? – Jay
看来这在春天还没有解决,并且没有计划要做:https://github.com/spring-projects/spring-framework/pull/747 – Marged
太糟糕了,因为使它成功的方式非常棘手。也许我会用逗号将我的列表作为String,即使我认为这不是一个好方法:/ – Tetragramato