我将所有配置设置到application.conf中,该配置位于src / main / resources下。当我在生产模式下运行我的应用程序时它工作正常。
val config = ConfigFactory.load()
在某些情况下,当我在docker容器中运行我的应用程序时,我需要覆盖大约30个属性。
当我添加
-Dconfig.file="/etc/deployed.conf"
它排除了包含" application.conf"的所有原始属性。并且未在" deployed.conf"。
中覆盖有没有办法解决这个问题?
更新
val myCfg = ConfigFactory.parseFile(new File("etc/deployed.conf"))
val config = ConfigFactory.load().withFallback(myCfg)
覆盖application.conf中的值,如果此文件不存在,则不会抛出任何异常?
答案 0 :(得分:0)
如果你创建它manually,你可以使用withFallback方法。
Config appConfig = ConfigFactory.parseResources(configs.remove(0));
for (String resource : configs) {
appConfig = appConfig.withFallback(ConfigFactory.parseResources(resource));
}