snakeyaml读取yaml配置文件

关于yaml是个什么东西,就不细说了。
yaml官方文档:http://www.yaml.org/
snakeyaml是用Java实现的解析yaml文件的库,官方wiki: https://bitbucket.org/asomov/snakeyaml/wiki/Documentation

下面上我解析yaml文件的例子:

// me.yaml
age: 1  
name: jiaobuchong
params:   
  event: what's up
  url:  http://www.jiaobuchong.com
favoriteBooks:      
  - Gone with the wind
  - The Little Prince

对应的JavaBean类:

// Me.java
public class Me {
    private Integer age;
    private String name;
    private Map<String, Object> params;
    private List<String> favoriteBooks;

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Map<String, Object> getParams() {
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public List<String> getFavoriteBooks() {
        return favoriteBooks;
    }

    public void setFavoriteBooks(List<String> favoriteBooks) {
        this.favoriteBooks = favoriteBooks;
    }

    @Override
    public String toString() {
        return "Me{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", params=" + params +
                ", favoriteBooks=" + favoriteBooks +
                '}';
    }
}

将配置项隐射到JavaBean中:

public class TestMeYaml {
    @Test
    public void testParseMeYaml() throws FileNotFoundException {
        Yaml yaml = new Yaml();
        Me me = yaml.loadAs(new FileInputStream(new File("config/me.yaml")), Me.class);
        System.out.println(me);
    }
}

如果yaml文件中有一个参数没有配置,隐射到JavaBean中的值就是null。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,622评论 6 427
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,081评论 25 709
  • 总结一下目前的游戏的商品交易系统 首先是玩家与玩家之间的交易 通过交易系统进行交易:例如魔兽的拍卖所,玩家在系统的...
    xunzou阅读 1,701评论 0 0