我认为实际上没有办法在由 spring 转换为列表/数组的 spring 属性中转义逗号(例如通过ConfigurationProperties
类或类似)。
也许有一些使用 SpEL 或其他东西的晦涩方法,但我发现在“索引”符号中指定列表属性更容易(不确定如何正确调用它)。
你的例子翻译如下
# results in ["a", "x", "z", "b", "c"]
some.property.list=a, x,z, b, c
# results in ["a", "x,z", "b", "c"]
some.property.list[0]=a
some.property.list[1]=x,z
some.property.list[2]=b
some.property.list[3]=c
然而,明显的缺点是您需要手动维护索引。但通常在这样的可配置列表中您只会拥有有限数量的条目(至少从我迄今为止的经验来看)。
另一种方法当然是切换到 YAML 配置而不是属性:
some:
property:
list:
- "a"
- "x,z"
- "b"
- "c"