把yml文件配置转换为Map<String, Object>方式存储开箱即用

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

记录: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

转换后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值