typesafe.config读取配置信息

本文介绍了如何在项目中添加maven依赖以使用typesafe.config库,并展示了如何编写和组织配置文件如application.conf, common.conf, logindb.conf和mysql.conf。通过示例代码,演示了配置信息的读取过程,最终给出了执行结果。" 131474765,1430994,R语言实现时空探索性模型,"['R语言', '数据分析', '时空建模', '环境科学', '流行病学', '城市规划']

maven依赖:

 <dependency>
      <groupId>com.typesafe</groupId>
      <artifactId>config</artifactId>
      <version>1.3.3</version>
    </dependency>

测试代码如下:

import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValue;

import java.io.File;
import java.util.Map;

/**
 * @Author cfwang
 * @Date 2019/12/19
 */
public class ConfigTest {
    public static void main(String[] args) {


        /**
         *  使用步骤:
         *     1.在resource目录下创建配置文件(application.conf 或者 application.json 或者 application.properties)
         *       默认加载顺序conf->json->properties
         *       注意:只能conf,json,properties后缀格式文件
         *
         * 加载任意位置的配置文件——灵活
         *   Config c = ConfigFactory.parseFile(new File("*****.conf"))
         */
        File file = new File("E:\\logindb.conf");
        Config config1 = ConfigFactory.parseFile(file);

        /**
         * 加载指定的文件
         */
        Config config2 = ConfigFactory.load("mysql.conf");
        System.out.println(config2.getString("login.db.username"));
        System.out.println(config2.getString("login.db.password"));
        System.out.println("========================");
        /**
         * ConfigFactory.load() 加载配置文件,只能加载src/main/resources目录下的application.conf文件,不够灵活。
         */
        Config conf = ConfigFactory.load();

        //1、prdserver.conf 获取指定配置文件
        for (Config config : conf.getConfigList("Prdserver")) {
            System.out.println(config.getInt("id"));
            System.out.println(config.getString("ip")+":"+config.getInt("port")+" "+config.getInt("rpc"));
        }
        System.out.println("========================");

        //2、logindb.conf
        System.out.println(conf.getString("login.db.driver"));
        System.out.println(conf.getString("login.db.url"));
        System.out.println(conf.getString("login.db.username"));
        System.out.println("========================");

        //3、common.conf
        for (Map.Entry<String, ConfigValue> entry : conf.getConfig("res.android").entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue().valueType() + " " + entry.getValue().unwrapped());
        }
        System.out.println("========================");

        // 3、common.conf
        for (Map.Entry<String, ConfigValue> entry : conf.getConfig("whitelist.member").entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue().valueType() + " " + entry.getValue().unwrapped());
        }
        System.out.println("========================");

        //4、common.conf
        System.out.println(conf.getString("company_ip"));
        System.out.println(conf.getString("lobbyserver.ip"));
        System.out.println(conf.getString("lobbyserver.port"));
        System.out.println(conf.getString("lobbyserver.rpc"));

    }
}

application.conf:

globalIP=127.0.0.1

include "logindb"

include "prdserver.conf"

include "common"

common.conf:

company_ip=    ${globalIP}
lan_res_url= "http://"${globalIP}":80/Resource/AssetBundle/"
wan_res_url= "http://"${globalIP}":7963/Resource/AssetBundle/"

lobbyserver= {
  ip= ${globalIP}
  port= 9900
  rpc= 9901
}

res {
  android {
    12250: 750
    13363: 906
    14774: 961
    14820: 961
    14824: 961
  }

  ios {
    12250: 719
    12275: 727
    13363: 876
    14774: 930
    14820: 930
    14824: 930
  }

  pc {
    111: 1120
  }
}

whitelist= {
  active= true
  member{
    test1: A40FE952-6DFB-489D-B5F3-846D7B570754
    test2: 04ed7c30a5c5686a2d7c3ec67a34f46c
    test3: 118FC61E-18FC-4DCA-B28E-A9AAF44430DA
  }
}

logindb.conf

# 账号服数据库
login.db.driver= com.mysql.jdbc.Driver
login.db.url= "jdbc:mysql://"${globalIP}":3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"
login.db.username= root
login.db.password= test
login.db.activeConn= 100

mysql.conf

# 账号服数据库
login.db.driver= com.mysql.jdbc.Driver
login.db.url= "jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"
login.db.username= root
login.db.password= test
login.db.activeConn= 100

执行结果如下:

root
test
========================
1
127.0.0.1:9010 9011
2
127.0.0.1:9010 9011
3
127.0.0.1:9010 9011
========================
com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
root
========================
14820 NUMBER 961
14774 NUMBER 961
12250 NUMBER 750
14824 NUMBER 961
13363 NUMBER 906
========================
test2 STRING 04ed7c30a5c5686a2d7c3ec67a34f46c
test3 STRING 118FC61E-18FC-4DCA-B28E-A9AAF44430DA
test1 STRING A40FE952-6DFB-489D-B5F3-846D7B570754
========================
127.0.0.1
127.0.0.1
9900
9901

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值