![](/img/trans.png)
[英]Overriding multiple config values in Typesafe config when using an uberjar to deploy
[英]Merge array values in configuration using withFallBack in typesafe config
我有一些數據可用作 HOCON 格式的類型安全配置文件。
有一個像這樣的基本文件:
"data":{
"k1":{
"values": ["v1", "v2"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}
可能有一個文件可用於進行一些更改,例如在測試期間,如下所示:
"data":{
"k1":{
"values": ["v9"]
}
}
我正在嘗試使用合並這兩個文件
fileConfig.withFallback(baseFileConfig)
最終結果是:
"data":{
"k1":{
"values": ["v9"] // desired ["v1","v2","v9"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}
即,后備配置中“k1”的數組值將被忽略。 有沒有辦法在合並后從兩個文件中獲取連接的數組?
為此,您需要為值連接添加 ref ( values: ${data.k1.values} ["v9"]
):
lazy val defaultConfig = ConfigFactory.parseResources("a.conf")
lazy val additionalConfig = ConfigFactory.parseResources("b.conf" )
println(additionalConfig.withFallback(defaultConfig).resolve())
// Config(SimpleConfigObject({"data":{"k1":{"values":["v1","v2","v9"]},"k2":{"values":["x1"]},"k3":{"values":["z1"]}}}))
配置:
默認配置
data: {
k1: {
values: ["v1", "v2"]
},
k2: {
"values": [
"x1"
]
},
k3: {
"values": [
"z1"
]
}
}
附加配置:
data: {
k1: {
values: ${data.k1.values} ["v9"]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.