记录:385
场景:在Spring Boot微服务中,读取application.yml或者bootstrap.yml等yml文件配置,转换为Map<String, Object>方式存储,使用(key,value)键值对方式,开箱即用。
1.基础说明
1.1转换原因
使用snakeyaml框架的org.yaml.snakeyaml.Yaml,从微服务的../src/main/resources资源加载yml文件,会存储在Map<String, Object> mapFromYml中。
(1)yml文件配置示例
server:
servlet:
context-path: /hub-example
spring:
jackson:
time-zone: GMT+8
(2)Yaml加载Map存储方式
Yaml加载Map存储方式:按照yml文件格式,一个冒号前面字符串就是一个Map的key,一个冒号后面部分是一个Map,直到冒号后面是具体值时,才是一个具体Object。因此,Yaml加载的结果Map<String, Object>在里面嵌套了很多层Map,最后一层Map的value才是具体值。具体格式,可以参考如下图。
使用不足:Yaml加载的Map,(key,value)键值对无法直接使用,使用时需要多次遍历才能找到最后值。因此,需转换。
(3)把Yaml加载的Map转换为可以直接使用的Map
yml配置示例:
server:
servlet:
context-path: /hub-example
spring:
jackson:
time-zone: GMT+8
转换后

文章介绍了在SpringBoot微服务中如何读取application.yml或bootstrap.yml等YAML配置文件,并将其转换为可以直接使用的Map<String,Object>。通过snakeyaml库加载文件,然后将多层嵌套的Map转换为扁平化的Map,便于按键值对直接获取配置值。文中提供了转换示例代码,包括基础方法和单例模式实现。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



