Typesafeの設定を使用していますが、リソースディレクトリに次のような設定ファイルがあります。
something {
another {
someconfig=abc
anotherconfig=123
}
}
Scalaを使用してanotherconfig
の値を変更するにはどうすればよいですか?
ロードされた構成を変更する(つまり、古い構成に基づいて新しい構成を作成する)場合は、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)
そして、元のConfigの代わりにどこでもnewConfigを使用します。より保守しやすいオプションは、変更を含む2番目の構成ファイルを作成して使用することです。
val myConfig = ConfigFactory.load("local")
val oldConfig = ConfigFactory.load
val realConfig = myConfig.withFallback(oldConfig)
次に、システムプロパティを使用して、myConfig
のロード元を設定できます。