SongHui.Club

Config- 摆脱配置的烦恼

在做项目的时候,常常会有多环境多场景的不同配置.在获取配置的时候有没有感觉很繁琐.今天介绍Config, 从此摆脱配置的烦恼.

1.pom文件引入依赖

 <!-- 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"));
    }
​
}

 

怎么样? 方便吧! 你学废了吗?

 
posted @ 2021-11-26 15:55  Mr.SongHui  阅读(211)  评论(0编辑  收藏  举报