goo*_*goo 33 scala typesafe-config
我正在使用Typesafe配置并在我的资源目录中有一个配置文件,如下所示:
something {
another {
someconfig=abc
anotherconfig=123
}
}
Run Code Online (Sandbox Code Playgroud)
我如何更改anotherconfig使用scala 的值?
Chr*_*ian 76
如果要更改加载的配置(即根据旧配置创建新配置),可以使用withValue:
val newConfig = oldConfig.withValue("something.another.anotherconfig",
ConfigValueFactory.fromAnyRef(456))
Run Code Online (Sandbox Code Playgroud)
Mar*_*mou 10
您不能覆盖原始Config对象中的值,因为它是不可变的.您可以做的是使用您的值创建一个新的Config对象,使用原始作为后备.所以:
val myConfig = ConfigFactory.parseString("something.another.anotherconfig=456")
val newConfig = myConfig.withFallback(oldConfig)
Run Code Online (Sandbox Code Playgroud)
然后在任何地方使用newConfig而不是原始配置.一个更易于维护的选择是使用您的更改并使用第二个配置文件:
val myConfig = ConfigFactory.load("local")
val oldConfig = ConfigFactory.load
val realConfig = myConfig.withFallback(oldConfig)
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用系统属性设置加载位置myConfig.