YML配置中的Spring Boot Spring EL

时间:2018-12-04 22:06:22

标签: java spring spring-boot

如果要设置一些环境变量,我想有条件地替换值。

例如

spring:
  profiles:
    include:
    - 'base'
    - 'FOO' (only if `FOO` is set to true in env variable)

2 个答案:

答案 0 :(得分:0)

YAML中没有条件逻辑,但是如果您愿意将值放入环境变量中,则可以执行以下操作:

spring:
  profiles:
    include: ${MY_FOO_ENV:base}

将您的MY_FOO_ENV设置为“ FOO”。如果环境中未定义MY_FOO_ENV,则':base'设置默认值。

答案 1 :(得分:0)

您可以查看文档:{​​{3}}

正如文档所述:您可以进行动态设置,因此必须在应用程序运行之前创建一些组件,在该组件上,您将必须验证该键是否存在某些环境变量。您可以使用@Value(“ $ {FOO}”)String foo;。因此,请在该组件中验证foo是否不同于null,然后验证setProfiles。