我正在使用 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'}'.
替换在值中效果很好,但在键中则不然。这是故意的吗?有办法解决这个问题吗?
我是否可以建议使用静态名称(例如
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")