[转] 配置文件解析利器-Config库
[From] https://blog.csdn.net/zero__007/article/details/51493851
Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。
- public class Configure {
- private final Config config;
- public Configure(String confFileName) {
- config = ConfigFactory.load(confFileName);
- }
- public Configure() {
- config = ConfigFactory.load();
- }
- public String getString(String name) {
- return config.getString(name);
- }
- }
ConfigFactory.load()会加载配置文件,默认加载classpath下的application.conf,application.json和application.properties文件。当然也可以调用ConfigFactory.load(confFileName)加载指定的配置文件。
配置内容即可以是层级关系,也可以用”.”号分隔写成一行:
- host{
- ip = 127.0.0.1
- port = 2282
- }
或则
- host.ip = 127.0.0.1
- host.port = 2282
即json格式和properties格式。(貌似*.json只能是json格式,*.properties只能是properties格式,而*.conf可以是两者混合,而且配置文件只能是以上三种后缀名)
如果多个config 文件有冲突时,解决方案有:
1. a.withFallback(b) //a和b合并,如果有相同的key,以a为准
2. a.withOnlyPath(String path) //只取a里的path下的配置
3. a.withoutPath(String path) //只取a里出path外的配置
例如:
- Config firstConfig = ConfigFactory.load("test1.conf");
- Config secondConfig = ConfigFactory.load("test2.conf");
- //a.withFallback(b) a和b合并,如果有相同的key,以a为准
- Config finalConfig = firstConfig.withOnlyPath("host").withFallback(secondConfig);
finalConfig中的配置是test1.conf中的host节点的所有配置与test2.conf所有节点的配置合集。
[转] 配置文件解析利器-Config库的更多相关文章
- golang常用库:配置文件解析库-viper使用
一.viper简介 viper 配置解析库,是由大神 Steve Francia 开发,他在google领导着 golang 的产品开发,他也是 gohugo.io 的创始人之一,命令行解析库 cob ...
- Nginx安装部署以及配置文件解析
Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令.Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或 ...
- golang 开源项目: 配置解析模块--config
在golang中,配置文件经常使用json格式.json格式的语法,有些繁琐,尤其是出现嵌套的时候,每一块都需要大括号包裹,看起来很臃肿. 本着简单易用的原则,个人开发了一个配置解析模块config, ...
- 读取ini配置文件 及 UI对象库
读取ini配置文件 配置项 读取API 写入API 实战:UI 对象库 读取ini配置文件 配置项 在每个 ini 配置文件中,配置数据会被分组(比如下述配置文件中的"config" ...
- WCF中配置文件解析
WCF中配置文件解析[1] 2014-06-14 WCF中配置文件解析 参考 WCF中配置文件解析 返回 在WCF Service Configuration Editor的使用中,我们通过配置工具自 ...
- HTML解析利器-HtmlAgility学习
原文:HTML解析利器-HtmlAgility学习 HtmlAgility是一个开源的Html解析库,据说是C#版的JQuery,功能非常强大. 该篇学习它的解析功能,还可以模拟用户请求,创建html ...
- 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用
[爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...
- 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用
[网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...
- MyBatis 源码分析 - 配置文件解析过程
* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...
随机推荐
- 简单Factory模式
#pragma once #include "student.h" #include "Teacher.h" typedef enum _EPersonType ...
- Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新
Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/7887449 ...
- javascript总结3:javaScript的 Math 对象
Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). Math 常用的方法 var n1=1234; v ...
- (转)那天有个小孩教我WCF[一][1/3]
原文地址:http://www.cnblogs.com/AaronYang/p/2950931.html 既然是小孩系列,当然要有一点基础才能快速掌握,归纳,总结的一个系列,哈哈 前言: 第一篇嘛,不 ...
- Log--日志变大原因总结
1. 有产生大日志操作,如重建整理索引,大量数据修改等2. 长期未提交事务,为保证为提交事务可以回滚,从最早为提交事务开始之后的所有事务,都是活动事务,不能被截断或覆盖3. 日志没有定期备份4. 镜像 ...
- C# 由范式编程==运算符引发对string内存分配的思考
今天在看C#编程指南时(类型参数的约束http://msdn.microsoft.com/zh-cn/library/d5x73970.aspx)看到一段描述: 在应用 where T : class ...
- webservice不能序列化接口问题,返回值为IList或者参数为接口的解决办法。
1. webservice 不能返回泛型接口集合IList,解决办法如下链接: 参考资料:http://www.cnblogs.com/yinhaiming/articles/1379424.html ...
- 教你如何选择BI数据可视化工具
本文来自网易云社区. 关于如何选择BI数据可视化工具,总体而言,主流BI产品在选择的时候要除了需要考虑从数据到展现.从公司内到公司外等各种场景,结合前面朋友的回答,还需要考虑以下几点:1:以后的数据处 ...
- 已经上架的app在AppStore上搜不到的解决办法
1.问题呈现 相信很多人都遇到过这个问题,天天刷iTunes connect,终于发现app已经上架了,兴奋的跑过去告诉老板,老板说好,大家都装一个吧! 这时候只能一边不慌不忙地甩锅给苹果,一边快马加 ...
- 738. Monotone Increasing Digits
Given a non-negative integer N, find the largest number that is less than or equal to N with monoton ...