ddpush 学习之路 4 PropertyUtil.java
2015-03-17 01:47
295 查看
现在。我们来解析 ddpush的第三个类 PropertyUtil.java
我们现在是解析ddpush的第三个类。这三个类都在ddpush的 org.ddpush.im.util 包中。我查看了一下ddpush的server端的代码。加上两个example类一共只有26个, 我们现在解析第三个类。还剩下23个类。ddpush 我还剩下23个类就学完了。抱着这样的心态继续学习
还是按照惯例,来先上我注释后的类代码, 然后是类的基本使用
好了,这个类内容比较少。主要是用来读取properties配置文件用的 提供了读取String类型的配置值、Int类型的配置值、Float类型的配置值 同时还给我们提供了一个读取自定义properties配置文件的函数 可以从指定的配置文件表中读取配置值。
好了。接下来就是对这个类的简单使用。
结果如下
好了 以上就是 ddpush的第三个类PropertyUtil.java的解析和理解。
ddpush一共26个类。我们已经学习了3个类了。还剩23个类。我们就可以基本的学习完ddpush了。
加油!坚持下去,你就能自己写推送服务器了。厉不厉害? 肯定厉害! NB不NB? 肯定NB!哈哈哈。
by brok1n 20150317
我们现在是解析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<String,Properties> propertiesSets = new HashMap<String, Properties>(); 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<String> 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
相关文章推荐
- ddpush 学习之路 2 DateTimeUtil.java
- ddpush 学习之路 3 StringUtil.java
- ddpush 学习之路 6 TCPClientBase.java
- ddpush 学习之路 11 MyUdpClient.java
- ddpush 学习之路 7 UDPClientBase.java
- ddpush 学习之路 9 ClientMessage.java
- ddpush 学习之路 13 Receiver.java
- ddpush 学习之路 10 MyTcpClient.java
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- ddpush 学习之路 12 Sender.java
- ddpush 学习之路 8 Constant.java
- ddpush 学习之路 5 Message.java
- ddpush 学习之路 14 UdpConnector.java
- JAVA学习之路:不走弯路,就是捷径
- 2006-05-30 学习使用java.util.logging.Logger类(纪念屈原吧)
- Java学习从入门到精通(八/八)面向对象、java.util 问答篇
- Java学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径
- JAVA学习之路:不走弯路,就是捷径