nis*_*ntv 2 scala typesafe-config hocon
我有一些数据可用作 HOCON 格式的类型安全配置文件。
有一个像这样的基本文件:
"data":{
"k1":{
"values": ["v1", "v2"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}
Run Code Online (Sandbox Code Playgroud)
可能有一个文件可用于进行一些更改,例如在测试期间,如下所示:
"data":{
"k1":{
"values": ["v9"]
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用合并这两个文件
fileConfig.withFallback(baseFileConfig)
最终结果是:
"data":{
"k1":{
"values": ["v9"] // desired ["v1","v2","v9"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}
Run Code Online (Sandbox Code Playgroud)
即,忽略后备配置中“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"]}}}))
Run Code Online (Sandbox Code Playgroud)
配置:
默认配置
data: {
k1: {
values: ["v1", "v2"]
},
k2: {
"values": [
"x1"
]
},
k3: {
"values": [
"z1"
]
}
}
Run Code Online (Sandbox Code Playgroud)
附加配置:
data: {
k1: {
values: ${data.k1.values} ["v9"]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |