Joh*_*ood 24 merge typesafe-config
我正在编写测试代码来验证RESTful服务.我想通过在执行测试之前简单地更改环境变量,能够在任何不同的环境中指出它.
我希望能够合并三个不同的配置文件:
conf/env/default.conf - 所有环境的默认配置值conf/env/<env>.conf - 特定于环境的值 application.conf - 用户对上述任何内容的覆盖我的想法是,我不希望所有内容都放在一个配置文件中,并且存在编辑错误的风险,导致配置项丢失.因此,将它们分开并让用户能够覆盖它们.
这就是它变得棘手的地方: default.conf将$ {references}包含在要被覆盖的内容中<env>.conf,并且可以进一步覆盖application.conf.
我需要推迟解决,直到所有三个合并.我怎么做?
Joh*_*ood 36
答案是用来ConfigFactory.parseResource()代替ConfigFactory.load().
这是完成的结果
private lazy val defaultConfig = ConfigFactory.parseResources("conf/env/default.conf")
private lazy val environmentConfig = ConfigFactory.parseResources("conf/env/" + env + ".conf" )
private lazy val userConfig = ConfigFactory.parseResources("application.conf")
private lazy val config = ConfigFactory.load()
.withFallback(userConfig)
.withFallback(environmentConfig)
.withFallback(defaultConfig)
.resolve()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7414 次 |
| 最近记录: |