解析yaml文件的时候维持文件中字段的顺序

之前开发一个功能时需要用到yaml文件记录配置信息,刚开始使用snakeyml,但是snakeyml有个小小的问题,就是它解析后得到的map的key的顺序与文件中的并不一致。这种情况在很多需求下都是无所谓的,但是因为我们的功能恰巧很重视这个顺序,故只能放弃使用yml。(不知道snakeyml有没有办法通过配置保证key的顺序与文件中的一致)

后来偶尔发现SpringBoot提供了一些工具,可以简单的处理yaml文件,且能够保证key的顺序,记录如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.core.io.ClassPathResource;

@SpringBootTest
class YAMLTest{

    @SuppressWarnings("Duplicates")
    public void execute() {
        YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean();
        factoryBean.setResources(new ClassPathResource("config/auto-create-tables-schedule.yml"));
        Properties properties = factoryBean.getObject();

        if (properties != null) {
            properties.forEach((table, tableCreateSql) -> {
                
            });
        }
    }

}

这个功能是很久前写的,但是最近因为又遇到了这个问题,故记录之,可能刚好记反了这两个yaml解析工具的特点,见谅,我下次遇到该问题时会及时更新该博客。