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

被折叠的 条评论
为什么被折叠?



