Scala Typesafe/Hocon配置:变量替换:引用路径
我们有一个使用hocon配置构建的巨大配置文件的项目。 我们打算在可能的情况下使用变量来创建template_部分,并根据一些选项在template中设置一些值 问题是,在这个配置中使用Scala Typesafe/Hocon配置:变量替换:引用路径,scala,typesafe,typesafe-config,Scala,Typesafe,Typesafe Config,我们有一个使用hocon配置构建的巨大配置文件的项目。 我们打算在可能的情况下使用变量来创建template_部分,并根据一些选项在template中设置一些值 问题是,在这个配置中使用变量时,我必须始终引用绝对路径。 是否可以使用规范名称(如果属性位于同一级别) 例如: foo { bar = 4 baz = ${foo.bar} // work perfect baz = ${[this].bar} // can I do smth like that? Any id
变量时,我必须始终引用绝对路径。
是否可以使用规范名称(如果属性位于同一级别)
例如:
foo {
bar = 4
baz = ${foo.bar} // work perfect
baz = ${[this].bar} // can I do smth like that? Any ideas.
}
更真实的例子。我真正想要的是在构建hocon配置时的通用OOP能力。
我有一些父配置template\u config
,其中包含important\u选项
,这实际上取决于实现:
custom\u config1
或custom\u config2
,当前我要做的是在两个子配置中实现important\u选项
,因为对于绝对路径,我必须引用自定义配置分区名称
custom_config1: $template_config {
child_option = child_value1
}
custom_config2: $template_config {
child_option = child_value2
}
template_config {
important_option = ${child_option} // NOT POSSIBLE
child_option = not_implemented
}
你所说的“到达配置”是什么意思?那意味着“富有”吗?通过阅读说明书,似乎你想要的是不可能的。路径是绝对的,而不是相对的。thx,我也检查了spec,但没有找到任何选项。我认为最好的办法是在Scala配置对象中封装您想要的逻辑。您不应该从根目录编写完整路径,即模板\u config.child\u选项
。当变量位于未命名配置中时,这也是一个问题,例如,在一个配置数组中。然后您不能通过它的路径引用它,例如outer{list:[{anonymous:config},{other:config}]}