J'utilise la configuration de Typesafe et j'ai un fichier de configuration dans mon répertoire de ressources qui ressemble à ceci:
something {
another {
someconfig=abc
anotherconfig=123
}
}
Comment changer la valeur de anotherconfig
à l'aide de scala?
Si vous souhaitez modifier la configuration chargée (c'est-à-dire créer une nouvelle configuration basée sur l'ancienne), vous pouvez utiliser withValue:
val newConfig = oldConfig.withValue("something.another.anotherconfig",
ConfigValueFactory.fromAnyRef(456))
Vous ne pouvez pas écraser une valeur dans l'objet Config d'origine car il est immuable. Ce que vous pouvez faire est de créer un nouvel objet Config avec vos valeurs, en utilisant l'original comme solution de rechange. Donc:
val myConfig = ConfigFactory.parseString("something.another.anotherconfig=456")
val newConfig = myConfig.withFallback(oldConfig)
puis utilisez newConfig partout au lieu de votre configuration d'origine. Une option plus facile à gérer serait d'avoir un 2ème fichier de configuration avec vos modifications et d'utiliser:
val myConfig = ConfigFactory.load("local")
val oldConfig = ConfigFactory.load
val realConfig = myConfig.withFallback(oldConfig)
Vous pouvez ensuite utiliser une propriété système pour définir où charger myConfig
.