Spring boot 如何在YAML文件中重用环境变量?

Spring boot 如何在YAML文件中重用环境变量?,spring-boot,environment-variables,yaml,Spring Boot,Environment Variables,Yaml,我试图在YAML文件中重用环境变量。 问题是我需要使用环境变量的值(如果存在)或默认值。但此默认值在配置的不同位置有所不同 例如,我可以这样做: urls: url1: ${BASE_URL:http://1} url2: ${BASE_URL:http://2} 。。。 等等 但我想做的是: urls: base: ${BASE_URL} url1: ${urls.base:http://1} url2: ${urls.base:http://2} 问题是,在后一种方法中,如果未

我试图在YAML文件中重用环境变量。 问题是我需要使用环境变量的值(如果存在)或默认值。但此默认值在配置的不同位置有所不同

例如,我可以这样做:

urls:
 url1: ${BASE_URL:http://1}
 url2: ${BASE_URL:http://2}
。。。 等等

但我想做的是:

urls:
 base: ${BASE_URL}
 url1: ${urls.base:http://1}
 url2: ${urls.base:http://2}
问题是,在后一种方法中,如果未设置环境变量,则属性urls.base将此字符串“${base\u URL}”作为值,因此不会使用默认值

如果我将默认空值设置为urls.base属性,则url1和url2将为空,并且不会使用默认值

除重用环境变量外,其他原因包括:

  • 更好的名字
  • 如果变量存在且没有空值,则执行逻辑

PD:我使用的是Spring boot

YAML中没有这样的功能,
${BASE\u URL}
只是一个普通的标量。在加载YAML文档之前或之后,使用或不使用某些默认值替换的任何功能都来自程序。另请参阅: