typesafe的配置库工具类Config试用

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import  com.typesafe.config.Config;
import  com.typesafe.config.ConfigFactory;
import  com.typesafe.config.ConfigValue;
import  org.junit.Test;
 
import  java.util.Map;
 
/**
  * @author by lei zhou on 2017/11/10 15:10.
  */
public  class  ConfigTest {
     @Test
     public  void  test() {
 
         Config conf = ConfigFactory.load();
 
         for  (Config config : conf.getConfigList( "battleserver" )) {
             System.out.println(config.getInt( "id" ));
             System.out.println(config.getString( "ip" ));
             System.out.println(config.getInt( "port" ));
         }
 
         System.out.println(conf.getString( "login.db.driver" ));
         System.out.println(conf.getString( "login.db.url" ));
         System.out.println(conf.getString( "login.db.activeConn" ));
 
         for  (Map.Entry<String, ConfigValue> entry : conf.getConfig( "res.android" ).entrySet()) {
             System.out.println(entry.getKey() +  " "  + entry.getValue().valueType() +  " "  + entry.getValue().unwrapped());
 
         }
 
         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(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" ));
 
     }
}


Maven依赖:

1
2
3
4
5
6
7
8
<dependencies>
         <!-- https://mvnrepository.com/artifact/com.typesafe/config -->
         <dependency>
             <groupId>com.typesafe</groupId>
             <artifactId>config</artifactId>
             <version>1.3.2</version>
         </dependency>
     </dependencies>


配置文件:

application.conf

1
2
3
4
5
6
7
globalIP=127.0.0.1
 
include "logindb"
 
include "battleserver"
 
include "common"

logindb.conf

1
2
3
4
5
6
# 账号服数据库
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

battleserver.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 战斗服信息
battleserver=
[
     {
          id = 1
          ip = ${globalIP}
          port = 9010
          rpc = 9011
     }
 
     {
          id = 2
          ip = ${globalIP}
          port = 9010
          rpc = 9011
     }
 
     {
          id = 3
          ip = ${globalIP}
          port = 9010
          rpc = 9011
     }
]

common.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
company_ip=    ${globalIP}
 
lan_res_url= "http://"${globalIP}":80/Resource/AssetBundle/"
wan_res_url= "http://"${globalIP}":18649/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
     }
}


输出结果
:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
127.0.0.1
9010
2
127.0.0.1
9010
3
127.0.0.1
9010
com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
100
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
本文转自   zl1030   51CTO博客,原文链接:http://blog.51cto.com/zl1030/1980846
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
1020 0
Vue3基础(19)___vite.config.js中配置路径别名
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
JSON 前端开发 JavaScript
vue.config.js配置详解
【8月更文挑战第16天】vue.config.js配置详解
1183 1
vue.config.js配置详解
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
1072 0
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
1087 0
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
410 0
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
374 0
|
JavaScript Java Python
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
353 0
|
测试技术
Profile Config 多环境不同配置
Profile Config 多环境不同配置
180 0

热门文章

最新文章