如何在Java Properties文件中用Hoplite配置结构化对象列表?
解决Hoplite加载Java Properties中结构化对象列表的语法问题
你之前用JSON风格的写法在Properties文件里定义对象列表,不符合Hoplite对Properties格式的解析规则,导致无法识别对象的key和value属性。正确的写法需要利用Properties的键值对层级结构,通过索引下标来区分列表中的每个对象:
正确的application.properties配置
lookupValues[0].key=a lookupValues[0].value=1 lookupValues[1].key=b lookupValues[1].value=2
为什么原来的写法失效?
Java Properties文件本质是扁平的键值对结构,不支持原生的{key: x, value: y}这种对象语法。Hoplite对Properties格式的列表解析,要求通过[索引]标记列表元素的位置,再用.连接对象的属性名,这样才能正确将键值对映射到LookupPair类的字段上。
验证代码(无需修改原有配置类和加载逻辑)
你的ApplicationConfig和LookupPair数据类,以及ConfigLoader的初始化代码都不需要改动,使用上面的Properties配置后,Hoplite就能成功解析出List<LookupPair>。
内容的提问来源于stack exchange,提问作者arosca
相关产品推荐
相关产品推荐

