nai*_*rbv 3 java configuration scala akka typesafe
我在看:https: //github.com/typesafehub/config
假设我想要一个默认配置,例如reference.conf,然后我想要dev/prod覆盖(两个不同的application.conf),然后我还想要从这两个应用程序继承的特定于主机的覆盖.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
Run Code Online (Sandbox Code Playgroud)
或者它可能是资源/ dev/master/application.conf?
某处我会指定一个环境,即可能从应用程序启动的主机名中提取.
如果应用程序是master.dev.example.com,我希望我能够做类似的事情:
getConfigurations("dev/master.conf").withDefaultsFrom(
getConfigurations("dev/application.conf").withDefaultsFrom(
getConfigurations("resource.conf"))
Run Code Online (Sandbox Code Playgroud)
但是我很难理解使用给定库的确切结果.
我看到我可以设置一个config.resource系统属性,但看起来它只允许一级覆盖,dev-application.conf - > resources.conf,而不是像master-node.conf那样 - > dev-application .conf - > resources.conf.
我看到一个.withFallback方法,但似乎我想在一个文件中混合两种配置,而不是将资源/文件链接在一起.
首先使用withFallback具有最高优先级的配置的倍数.例如:
Config finalConfig =
ConfigFactory.systemProperties().
withFallback(masterConfig).
withFallback(applicationConfig).
withFallback(referenceConfig)
Run Code Online (Sandbox Code Playgroud)
每个配置masterConfig都会被加载Config.parseFile.您也可以ConfigFactor.load使用方便,但这些parseXXX方法可以让您更好地控制层次结构.
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |