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