最近写了一个开源github项目,是一个纯Java项目,用来检测指定的一个服务器是否正常运行可访问。如果发生异常可以发送邮件,并可能的话可以尝试重启tomcat服务器。如果您感兴趣可以访问 serverfly 谢谢大家,安利完毕
现在开始正式介绍本文章,因为写这个自动反序列化properteis工具也是因为上面这个项目我才编写了这个工具类。可能这个项目里面也就这个工具类写的最多吧。
例如:config.properties中:
key1=123
key2=中文
key3=false
Const.java:
public static int key1;
public static String key2;
public static boolean key3;
使用工具类:
PropertiesAutoSerialize.init("/config.properties",Const.class);
看上去使用方式好像很简单,其实是真的很简单!这是真的!
实现原理
从properties文件中获取所有的key
遍历这些key去找类中的同名静态字段
字段仅支持boolean,byte,char,short,int,long,float,double,String
properties需要使用UTF-8编码,否则中文乱码
献上工具类代码:PropertiesAutoSerialize.java
package com.againfly.util;
import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Iterator;
import java.util.Properties;
/**
* Created by wangankang on 16/8/28.
* 该类用于将Properties文件中的参数,自动的设置到类同名字段中,前提是字段为静态的.
*/
public class PropertiesAutoSerialize implements Serializable {
/**
* 待反序列化的类
*/
private Class clazz;