Подтвердить что ты не робот

Scala: записать значение в typeafe config object

Я использую configafe config и имею конфигурационный файл в каталоге ресурсов, который выглядит следующим образом:

something {
  another {
    someconfig=abc
    anotherconfig=123
  }
}

Как изменить значение anotherconfig с помощью scala?

4b9b3361

Ответ 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 из.