Spring Boot YAML配置和列表

时间:2015-10-19 10:03:32

标签: java spring spring-boot yaml

我必须在Spring Boot中将列表集成到YAML配置文件中,并且不知道如何继续。

我已经看到了其他相关问题:Spring Boot yaml configuration for a list of strings

并有同样的问题。

我应用了解决方案并进行了解决,并发现解决方案有点棘手。

有没有办法让列表与@Value一起使用?

如果不是现在,将来会有预期吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

根据此文档,您可以在yaml中执行列表。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml

YAML列表表示为带有[index]解除引用的属性键,例如此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,或用可变值初始化它,例如这将绑定到上面的属性

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

    private List<String> servers = new ArrayList<String>();

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

答案 1 :(得分:0)

https://www.youtube.com/watch?v=d6Scea1JdMg&t=9s

请参考上面的链接。也许它会有所帮助,展示了如何在 Spring Boot 中读取 application.yml 中的不同数据类型。