Config- 摆脱配置的烦恼
在做项目的时候,常常会有多环境多场景的不同配置.在获取配置的时候有没有感觉很繁琐.今天介绍Config, 从此摆脱配置的烦恼.
com.typesafe config 1.3.4
2.resources目录下创建配置文件
3.创建测试类进行测试
package dintalk.cn.common.demo; ? import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; ? /** * @ClassName: ConfigDemo * @Description: * @Author: song hui * @Date: 2021/11/25 */ public class ConfigDemo { ? private Config config; ? public void initConfig(){ // 加载指定 路径配置 // this.config = ConfigFactory.load("common/application"); ? // 默认加载 resources 下的*.properties, *.conf(不含其子目录) // .conf 文件可以配置json 对象 this.config = ConfigFactory.load(); ? // 不同配置文件中相同的key会覆盖 /* * 如果多个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("first"); // Config secondConfig = ConfigFactory.load("second"); // this.config = firstConfig.withFallback(secondConfig); ? } ? public Config getConfig() { return config; } ? public static void main(String[] args) { ConfigDemo configDemo = new ConfigDemo(); configDemo.initConfig(); Config config = configDemo.getConfig(); System.out.println(config.getString("r")); // .conf文件中配置的json 对象 Config a = config.getConfig("b"); // 打印 .conf文件中一个json对象的某一个值 System.out.println(a.getString("host")); ? // 获取配置文件中通过"." 划分的层级配置 Config d = config.getConfig("d"); System.out.println(d.getString("c")); ? // 区分大小写 System.out.println(config.getString("C")); } ? }
怎么样? 方便吧! 你学废了吗?