在访问HOCON文件中的环境变量时```的作用

Bla*_*man 6 scala typesafe-config

文档说,我可以访问这样的环境变量:

database_name = "${?DB_NAME}"
Run Code Online (Sandbox Code Playgroud)

DB_NAME环境变量在哪里.我是否必须提出问号?或是否存在问题以防止崩溃(如果它不存在)?

另外,我们是否允许在声明之前引用文件中的变量?

foo = "hello-${bar}"
bar = "baz"
Run Code Online (Sandbox Code Playgroud)

Nad*_*ari 8

1- ?表示可选,因此如果运行时中不存在环境变量,则将忽略整行,就好像它在第一个位置不存在一样.因此,当您需要可选覆盖时使用它.

有关详细信息,请参阅文档的可选Env Vars部分.

另请注意,?适用于所有替换,而不仅仅是env vars.

2-是的,您可以引用稍后在配置文件中定义的变量(正向引用).只要值存在且没有循环(循环依赖),替换就会成功完成.

可以这样想:首先整个文件将在运行时解析,文字的值将绑定到他们的变量,然后替换将完成,因此顺序并不重要.