MyCommonUtils
参考一些资料,写了这个工具类。在这个工具类中,主要实现了2个方法:
1.生成随机的序列号 uuid();
2.将Map中的数据封装到javaBean对象中toBean(Map map,Class<T> clazz);
编辑器:MyEclipse 10.0
1.依赖的jar包:
2.目录结构及日志文件的配置:
日志文件:log4j.properties
1 log4j.rootLogger=INFO, stdout, R 2 3 #\u5C06\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u63A7\u5236\u53F0 4 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 5 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 6 log4j.appender.stdout.layout.ConversionPattern=%d[%t]%-5p (%c:%L):-- %m%n 7 8 #\u5C06\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u6587\u4EF6 9 log4j.appender.R=org.apache.log4j.RollingFileAppender 10 log4j.appender.R.File=D:\\logging.log 11 log4j.appender.R.MaxFileSize=100KB 12 # Keep one backup file 13 log4j.appender.R.MaxBackupIndex=1 14 log4j.appender.R.layout=org.apache.log4j.PatternLayout 15 log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 16 log4j.logger.com.foo=WARN
3.MyCommonUtils的具体实现【代码清单--1】
1 package com.lxf.myCommonUtils; 2 3 import java.lang.reflect.InvocationTargetException; 4 import java.util.Map; 5 import java.util.UUID; 6 7 import org.apache.commons.beanutils.BeanUtils; 8 import org.apache.commons.beanutils.ConvertUtils; 9 import org.apache.commons.beanutils.converters.DateConverter; 10 11 /** 12 * 常用类工具--CommonUtils 13 * 14 * @author lxf 15 * 16 */ 17 public class MyCommonUtils 18 { 19 /** 20 * 1.生成随机的32位长的字符串 21 */ 22 public static String uuid() 23 { 24 //这里要用到java.util.UUID包中的randomUUID()方法. 25 //String uuid = UUID.randomUUID().toString(); 26 27 //生成的格式为:88c7f729-037e-4f4d-a361-71cd91f393a1 28 //如果不想要"-",可以使用下面的描述 29 String uuid = UUID.randomUUID().toString().replace("-", ""); 30 return uuid; 31 } 32 33 /** 34 * 2.将Map中的数据封装到Bean中 35 * @param map 36 * @param clazz 37 * @return 38 */ 39 public static<T> T toBean(Map map,Class<T> clazz) 40 { 41 /** 42 * 1.通过clazz创建实例; 43 * 2.通过BeanUtils.populate()将Map封装到Bean中; 44 */ 45 T bean = null; 46 try 47 { 48 bean = clazz.newInstance(); 49 ConvertUtils.register(new DateConverter(), java.util.Date.class); 50 BeanUtils.populate(bean, map); 51 } 52 catch (InstantiationException e) 53 { 54 e.printStackTrace(); 55 } 56 catch (IllegalAccessException e) 57 { 58 e.printStackTrace(); 59 } 60 catch (InvocationTargetException e) 61 { 62 e.printStackTrace(); 63 } 64 return bean; 65 66 } 67 68 }
4.测试类(JUnit4)【代码清单---2】
package com.lxf.test; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import org.junit.Test; import com.lxf.bean.Person; import com.lxf.myCommonUtils.MyCommonUtils; /** * 工具测试类 * @author Administrator * */ public class MyUtilsTest { private static final Logger LOGGER = Logger.getLogger(MyUtilsTest.class); /** * MyCommonUtils类的uuid()方法 */ @Test public void testUuid() { String uuid = MyCommonUtils.uuid(); LOGGER.info(uuid); } /** * MyCommonUtils类的toBean()方法 */ @Test public void testToBean() { //1.创建Map实例 Map<String,Object> map = new HashMap<String,Object>(); /** * 这里要保证的是map中的属性名要和bean中的属性名相同, * 类型的话,toBean 会自动转换 */ map.put("pId", "001"); map.put("pName", "Jack"); map.put("pAge","23"); //2.通过Map的数据来创建Person类的javaBean. Person person1 = MyCommonUtils.toBean(map, Person.class); System.out.println(person1); } }
5.运行结果
6.后期补充
uuid()方法可以生成32位随机的字符串,在项目中的数据库主键可以使用;
另外,也可以用作软件的注册码。