如何正确将Properties文件转为YAML以适配Spring 3.4且无需修改代码?
解决Properties转YAML时的嵌套键解析问题
针对你遇到的场景,要在不修改代码的前提下完成转换,正确的YAML写法如下:
stage: tl: nm: name ver: 11 url: myUrl "url.event": myEvent
为什么之前的写法错误?
- 第一种写法:
url: myUrl是一个紧凑映射(简单键值对),YAML不允许在紧凑映射后直接嵌套子属性event: myEvent,这就是Eclipse报nested mapping are not allowed in compact mappings错误的原因。 - 第二种写法:未加引号的
url.event会被YAML解析为一个独立的平级键,而非url的子属性,导致Spring无法将其映射到原Properties中的stage.tl.url.event路径。
验证逻辑
用引号包裹"url.event"后,Spring会将其识别为stage.tl.url的子属性,完全匹配原Properties的结构,既能正确解析stage.tl.url=myUrl,也能获取stage.tl.url.event=myEvent的值,无需修改任何业务代码即可适配Spring 3.4。
内容的提问来源于stack exchange,提问作者Oxnard
相关产品推荐
相关产品推荐

