gpt4 book ai didi

java - 有没有办法在 HOCON 中将节点向上移动?

转载 作者:行者123 更新时间:2023-12-01 13:57:10 27 4
gpt4 key购买 nike

我正在使用类型安全配置,并且我正在寻找一种简单的方法来允许可选覆盖应用程序之间共享的配置文件中的属性。

假设我有 2 个应用程序,A 和 B。它们都使用模块 Z。它们都加载共享配置文件“shared.conf”。

模块 Z 在其 reference.conf 中定义了一个属性

z.foo=bar

我希望能够
#override the property for both A & B
z.foo=zap

或者
#override the property for just A
a.z.foo=zip

我知道我可以只为每个应用程序的 application.conf 中的“z”前缀执行此操作。例如
z = ${?a.z}

但我希望可能有一种方法可以一直移动到根节点。例如
MAGICAL_ROOT = ${?a}

我所希望的可能吗?

最佳答案

根据 config github 存储库中的文档,将子树提升到根目录的方法不是在配置本身,而是在代码中。
我会引用:

You can also use withFallback to merge in some hardcoded values, or to "lift" a subtree up to the root of the configuration; say you have something like:

foo=42
dev.foo=57
prod.foo=10

Then you could code something like:

Config devConfig = originalConfig
.getConfig("dev")
.withFallback(originalConfig)

在你的情况下,你想要这样的东西:
Config aConfig = originalConfig
.getConfig("a")
.withFallback(originalConfig)
您可以阅读有关 Merging config trees 的更多信息.

关于java - 有没有办法在 HOCON 中将节点向上移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40518197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com