在做项目的时候,常常会有多环境多场景的不同配置.在获取配置的时候有没有感觉很繁琐.今天介绍Config, 从此摆脱配置的烦恼.
<!-- https://mvnrepository.com/artifact/com.typesafe/config --> <dependency> <groupId>com.typesafe</groupId> <artifactId>config</artifactId> <version>1.3.4</version> </dependency>
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")); } }
怎么样? 方便吧! 你学废了吗?