【问题标题】:application.yaml file setting field with OR condition (Providing default value)带有 OR 条件的 application.yaml 文件设置字段(提供默认值)
【发布时间】:2022-07-10 02:16:34
【问题描述】:

有一个 Java SpringBoot 应用程序,其中包含一个配置所有属性的 application.yaml 文件。由于我们使用不同的环境,一些字段被配置为从 deployment.yaml 文件中读取,并且这些字段的值会发生变化。但是我不想定义一个字段,如果它存在,它将考虑deployment.yaml文件中的值,否则它应该采用给定的默认值。

类似这样的:

root:
  some-sub-level:
    some-key: ${VALUE_FROM_DEPLOYMENT_YAML:${default.level.value}}

default:
  level:
    value: some-default-value

我尝试了几种方法,但都没有成功。它采用空白值,因为 VALUE_FROM_DEPLOYMENT_YAML 在一个特定环境中将为空。

PS:我知道在 Java 代码中添加默认值,例如 @Value("${value.from.application.yaml:"some default value"},但我对此不感兴趣。要求不是在 Java 代码中阅读此内容,但它将是 Azure Application Insight 的配置。

任何人都可以帮助我这里缺少什么

【问题讨论】:

    标签: java spring-boot azure yaml app.yaml


    【解决方案1】:

    根据this answer,它支持这种称为占位符属性的表示法:

    spring: 
       profiles: 
         active: ${APP_PROFILE:test}
    # ... #
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2012-01-23
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 2021-05-08
      相关资源
      最近更新 更多