基于spring boot读取配置yaml hashmap

Posted

技术标签:

【中文标题】基于spring boot读取配置yaml hashmap【英文标题】:Spring boot reading configuration yaml hashmap based 【发布时间】:2020-05-31 18:54:56 【问题描述】:

是否可以在 Spring Boot 中使用 @configurationproperties 读取 yaml 文件?

app:
  X1:
    key1: value1
    key2: value2

  X2:
    key1: value3
    key2: value4 
  X3:
    key1: value5
    key2: value6
  X4:
    key1: value7
    key2: value8

我想阅读并把它写成Hashmap

【问题讨论】:

【参考方案1】:

其中一种方法是使用 EnvironmentPostProcessor。您必须在后处理器中手动将它们放入 Hahsmap 中。将属性值读取为“key:value”,然后使用String split将它们设置在HashMap中。

public class CreatehashMapPostProcessor implements EnvironmentPostProcessor 

  private static final String PROPERTY_SOURCE_NAME = "app.properties";

  @Override
  public void postProcessEnvironment(ConfigurableEnvironment env, SpringApplication application) 
    Map<String, Object> map = new HashMap<String, String>();
    String []val = env.getProperty("...");
   map.put(val[0], val[1]);
  

【讨论】:

以上是关于基于spring boot读取配置yaml hashmap的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 无法从配置文件特定的 yaml 文件中读取

spring boot 读取 application.yml 中 List 类型数据

Spring boot YAML Config未读取所有值

Spring Boot 获取yaml配置文件信息

spring boot 配置多个yaml文件并根据env参数加载

Spring Boot项目的Logback配置文件使用yaml格式