的docs说,我可以访问这样的环境变量:角色``在HOCON文件访问环境变量时
database_name = "${?DB_NAME}"
凡DB_NAME
是一个环境变量。如果不存在,我必须将问号?
或防止崩溃吗?
另外,我们是否允许在声明之前在文件中引用变量?
foo = "hello-${bar}"
bar = "baz"
的docs说,我可以访问这样的环境变量:角色``在HOCON文件访问环境变量时
database_name = "${?DB_NAME}"
凡DB_NAME
是一个环境变量。如果不存在,我必须将问号?
或防止崩溃吗?
另外,我们是否允许在声明之前在文件中引用变量?
foo = "hello-${bar}"
bar = "baz"
1- ?
意味着可选的,因此如果环境变量不存在运行时的整条生产线将被忽略,因为如果它没有在首位存在。所以,当你想要可选的覆盖时使用它。
有关更多信息,请参阅Optional Env Vars section of the docs。
另请注意,?
适用于所有替代品,而不仅仅是env vars。
2-是的,您可以引用稍后在配置文件中定义的变量(正向引用)。只要该值存在并且没有循环(循环依赖),替换将成功完成。
想到这样:首先整个文件将在运行时解析,文字的值将被绑定到它们的变量,然后替换将完成,所以顺序并不重要。
最好提出两个不同的问题,每个问题一个。 –