我一直在类型安全配置中使用环境变量替换功能:
foo = "foo"
foo = ${?FOO}
如果没有名为 FOO
的环境变量,这将导致"默认"值为"foo"。在这种情况下,第二个值声明(foo = ${?FOO}
被简单地丢弃)。但是,如果存在名为 FOO
的变量,则库将"替换"FOO
的值并将其分配给foo
。
我希望数组有类似的行为,但不幸的是,这不能按预期工作:
foo = [ "1", "2" ]
foo = [ ${?f1}, ${?f2} ]
在未定义f1
和f2
的情况下,这只会导致foo
为空数组。我的目标是产生与上述类似的效果(如果没有定义环境变量f1
和f2
,则丢弃第二个foo
)。任何想法/建议不胜感激。谢谢。
我发现在 HOCON 配置文件中使用 a = ${?VARNAME}
和 Scala 代码期望List
,并使用-DVARNAME.0=something
(或简单地VARNAME.0=something
)将产生正确的["something"]
值。(使用 Play 2.6.13 和允许的主机筛选器进行测试。