在 HOCON 中用环境变量替换 key

问题描述 投票:0回答:1

我正在使用 pureconfig 读取我的 Scala 应用程序的配置。

application.conf
文件为 HOCON 格式。我的配置文件看起来像这样

weathers {
    ${?HUMID_WEATHER_ID} {
      temperature = 10
      temperature = ${?HUMID_WEATHER_TEMPERATURR}
    }
    ${?HOT_WEATHER_ID} {
      temperature = 10
      temperature = ${?HOT_WEATHER_TEMPERATURR}
    }
}

weathers
是一个映射,其键应替换为环境变量
HUMID_WEATHER_ID
HOT_WEATHER_ID
。但是当我阅读配置时,我得到了这个异常

 135) Unable to parse the configuration: expecting a close parentheses ')' here, not: '${'HUMID_WEATHER_ID'}'.

替换在值中效果很好,但在键中则不然。这是故意的吗?有办法解决这个问题吗?

scala config hocon pureconfig
1个回答
0
投票

我是否可以建议使用静态名称(例如

hot
humid
),而不是使用 ID 作为密钥?每个元素都有一个可以替换的
id
字段。

weathers {
    humid {
      id = ${?HUMID_WEATHER_ID} {
      temperature = 10
      temperature = ${?HUMID_WEATHER_TEMPERATURR}
    }
    hot {
      id = ${?HOT_WEATHER_ID}
      temperature = 10
      temperature = ${?HOT_WEATHER_TEMPERATURR}
    }
}

然后更改您的代码来执行

config.get(s"weathers.{name}.id")

© www.soinside.com 2019 - 2024. All rights reserved.