Я использую configafe config и имею конфигурационный файл в каталоге ресурсов, который выглядит следующим образом:
something {
another {
someconfig=abc
anotherconfig=123
}
}
Как изменить значение anotherconfig с помощью scala?
Ответ 1
Если вы хотите изменить загруженный конфиг (т.е. создать новую конфигурацию на основе старой), вы можете использовать withValue:
val newConfig = oldConfig.withValue("something.another.anotherconfig",
ConfigValueFactory.fromAnyRef(456))
Ответ 2
Вы не можете перезаписать значение в исходном объекте Config, поскольку оно является неизменным. Что вы можете сделать, так это создать новый объект Config с вашими значениями, используя оригинал в качестве резервной копии. Итак:
val myConfig = ConfigFactory.parseString("something.another.anotherconfig=456")
val newConfig = myConfig.withFallback(oldConfig)
а затем используйте newConfig везде, а не исходную конфигурацию. Более удобным вариантом будет иметь второй файл конфигурации с вашими изменениями и использовать:
val myConfig = ConfigFactory.load("local")
val oldConfig = ConfigFactory.load
val realConfig = myConfig.withFallback(oldConfig)
Затем вы можете использовать системное свойство, чтобы установить, где загрузить myConfig из.