【发布时间】:2016-01-16 21:36:10
【问题描述】:
我在看: https://github.com/typesafehub/config
假设我想要一个默认配置,例如reference.conf,然后我想要 dev/prod 覆盖(两个不同的 application.conf),然后我还想要从 application.conf 和最终的默认 reference.conf 继承的特定于主机的覆盖。我该怎么做?
例如,我想象一个目录结构类似于:
resources/reference.conf
resources/prod/application.conf
resources/prod/master.conf
resources/prod/slave.conf
resources/dev/application.conf
resources/dev/master.conf
resources/dev/slave.conf
或者可能是 resources/dev/master/application.conf?
我会在某个地方指定一个环境,即可能从启动应用程序的主机名中提取。
如果应用程序是 master.dev.example.com,我希望我应该能够执行以下操作:
getConfigurations("dev/master.conf").withDefaultsFrom(
getConfigurations("dev/application.conf").withDefaultsFrom(
getConfigurations("resource.conf"))
但我很难理解使用给定库的具体情况。
我知道我可以设置一个 config.resource 系统属性,但它看起来只允许一级覆盖,dev-application.conf -> resources.conf,而不是 master-node.conf -> dev-application.conf -> resources.conf。
我看到一个 .withFallback 方法,但这似乎是我想在一个文件中混合两种配置,而不是将资源/文件链接在一起。
【问题讨论】:
标签: java scala configuration akka typesafe