typesafe的配置库工具类Config试用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
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
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
自然语言处理 JavaScript
vue element plus Config Provider 全局配置
vue element plus Config Provider 全局配置
38 0
|
2天前
|
移动开发 前端开发 JavaScript
Vue2 系列:vue.config.js 参数配置
Vue2 系列:vue.config.js 参数配置
11 2
|
4天前
|
前端开发 API
nuxt.config.js 配置
我们在使用Nuxt.js提供的create-nuxt-app 创建项目后,更希望对它自定义一些东西,这里我们可以在根目录下找到nuxt.config.js
20 7
|
4天前
|
开发框架 JSON .NET
.Net4.0 Web.config 配置实践
.Net4.0 Web.config 配置实践
|
4天前
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
34 1
|
4天前
|
JavaScript
vue.config.ts配置环境变量
vue.config.ts配置环境变量
39 0
|
4天前
|
算法 Unix Linux
【Linux 库管理工具】深入解析pkg-config与CMake的集成与应用
【Linux 库管理工具】深入解析pkg-config与CMake的集成与应用
91 0
|
4天前
|
移动开发 监控 小程序
mPaaS常见问题之uniapp ios端云打包的配置config文件如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
39 0
|
4天前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
795 0
|
4天前
|
微服务
SpringCloud-Config服务端微服务从自己的Gitee上获取配置内容配置读取规则
SpringCloud-Config服务端微服务从自己的Gitee上获取配置内容配置读取规则
26 0

热门文章

最新文章