ddpush java_ddpush 学习之路 4 PropertyUtil.java

现在。我们来解析 ddpush的第三个类 PropertyUtil.java

我们现在是解析ddpush的第三个类。这三个类都在ddpush的 org.ddpush.im.util 包中。我查看了一下ddpush的server端的代码。加上两个example类一共只有26个, 我们现在解析第三个类。还剩下23个类。ddpush 我还剩下23个类就学完了。抱着这样的心态继续学习

还是按照惯例,来先上我注释后的类代码, 然后是类的基本使用

public class PropertyUtil {

//默认配置文件名

public static final String DEFAULTSET = "ddpush";

//map集合。用来存放Property

protected static HashMap propertiesSets = new HashMap();

private PropertyUtil() {}

//将DEFAULTSET配置文件读取保存到map集合中

protected static void init() {

init(DEFAULTSET);

}

/** * 初始化 * 用来读取默认的ddpush配置信息 将读取到得配置信息转换成UTF-8格式 * 并保存到map集合当中,方便程序中使用 * */

protected static void init(String setName) {

//用配置表文件创建ResourceBundle对象。来解析配置表文件

ResourceBundle rb = ResourceBundle.getBundle(setName);

//创建一个空白的Properties对象。用来保存读取的配置表文件的配置数据

Properties properties = new Properties();

//遍历配置表。得到配置的key value 将value转换成UTF-8格式

Enumeration eu = rb.getKeys();

while(eu.hasMoreElements()){

String key = eu.nextElement().trim();

String value = rb.getString(key).trim();

try{

value = new String(value.getBytes("ISO8859-1"),"UTF-8");

}catch(Exception e){

e.printStackTrace();

}

//将读取到得key value 保存到Properties对象中

properties.put(key.toUpperCase(), value);

}

//将读取完成的Properties对象用配置文件名作key,保存到map集合中

propertiesSets.put(setName, properties);

}

/** * 根据 key 获取Property配置信息中得值 * 如果默认DEFAULTSET配置文件没有读取并保存到map配置信息集合中。 * 就调用init 读取DEFAULTSET配置文件 * 然后从map集合找到默认的DEFAULTSET集合中key对应value 并返回 * */

public static String getProperty(String key){

if(propertiesSets.get(DEFAULTSET) == null){

init();

}

return propertiesSets.get(DEFAULTSET).getProperty(key.toUpperCase());

}

//根据key 从DEFAULTSET配置表中获取 int 类型的值

public static Integer getPropertyInt(String key){

int value = 0;

try{

value = Integer.parseInt(getProperty(key));

}catch(Exception e){

e.printStackTrace();

System.exit(1);

}

return value;

}

//根据key 从DEFAULTSET配置表中获取 Float 类型的值

public static Float getPropertyFloat(String key){

float value = 0;

try{

value = Float.parseFloat(getProperty(key));

}catch(Exception e){

e.printStackTrace();

System.exit(1);

}

return value;

}

//从传入的配置文件名的表中 获取key对象的值

public static String getProperty(String setName, String key){

if(propertiesSets.get(setName) == null){

init(setName);

}

String value = propertiesSets.get(setName).getProperty(key.toUpperCase());

if(value == null){

return "";

}

return value;

}

}

好了,这个类内容比较少。主要是用来读取properties配置文件用的 提供了读取String类型的配置值、Int类型的配置值、Float类型的配置值 同时还给我们提供了一个读取自定义properties配置文件的函数 可以从指定的配置文件表中读取配置值。

好了。接下来就是对这个类的简单使用。

//读取一个配置内容

String createMacStr = getProperty("CREATE_MACHINE_BY_CLIENT");

System.out.println("读取 CREATE_MACHINE_BY_CLIENT 结果:" + createMacStr);

//读取一个int类型的配置内容

int tcpPortInt = getPropertyInt("CONSOLE_TCP_PORT");

System.out.println("读取 CONSOLE_TCP_PORT 结果:" + tcpPortInt);

//读取一个float类型的配置内容

float cleanMemFloat = getPropertyFloat("CLEANER_AUTO_RUN_MEM_PERCENT");

System.out.println("读取 CLEANER_AUTO_RUN_MEM_PERCENT 结果:" + cleanMemFloat);

结果如下

读取 CREATE_MACHINE_BY_CLIENT 结果:YES

读取 CONSOLE_TCP_PORT 结果:9900

读取 CLEANER_AUTO_RUN_MEM_PERCENT 结果:0.95

好了 以上就是 ddpush的第三个类PropertyUtil.java的解析和理解。

ddpush一共26个类。我们已经学习了3个类了。还剩23个类。我们就可以基本的学习完ddpush了。

加油!坚持下去,你就能自己写推送服务器了。厉不厉害? 肯定厉害! NB不NB? 肯定NB!哈哈哈。

by brok1n 20150317

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值