MyCommonUtils

参考一些资料,写了这个工具类。在这个工具类中,主要实现了2个方法:

1.生成随机的序列号 uuid();

2.将Map中的数据封装到javaBean对象中toBean(Map map,Class<T> clazz);

编辑器:MyEclipse 10.0

1.依赖的jar包:

2.目录结构及日志文件的配置:

日志文件:log4j.properties

 log4j.rootLogger=INFO, stdout, R

 #\u5C06\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u63A7\u5236\u53F0
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d[%t]%-5p (%c:%L):-- %m%n #\u5C06\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u6587\u4EF6
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=D:\\logging.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.com.foo=WARN

3.MyCommonUtils的具体实现【代码清单--1】

 package com.lxf.myCommonUtils;

 import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import java.util.UUID; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter; /**
* 常用类工具--CommonUtils
*
* @author lxf
*
*/
public class MyCommonUtils
{
/**
* 1.生成随机的32位长的字符串
*/
public static String uuid()
{
//这里要用到java.util.UUID包中的randomUUID()方法.
//String uuid = UUID.randomUUID().toString(); //生成的格式为:88c7f729-037e-4f4d-a361-71cd91f393a1
//如果不想要"-",可以使用下面的描述
String uuid = UUID.randomUUID().toString().replace("-", "");
return uuid;
} /**
* 2.将Map中的数据封装到Bean中
* @param map
* @param clazz
* @return
*/
public static<T> T toBean(Map map,Class<T> clazz)
{
/**
* 1.通过clazz创建实例;
* 2.通过BeanUtils.populate()将Map封装到Bean中;
*/
T bean = null;
try
{
bean = clazz.newInstance();
ConvertUtils.register(new DateConverter(), java.util.Date.class);
BeanUtils.populate(bean, map);
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (InvocationTargetException e)
{
e.printStackTrace();
}
return bean; } }

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位随机的字符串,在项目中的数据库主键可以使用;

  另外,也可以用作软件的注册码。

javaWeb开发小工具--MyCommonUtils的更多相关文章

  1. javaWeb开发小工具---MailUtils及其单元测试

    本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...

  2. Android 开发小工具之:Tools 属性 (转)

    Android 开发小工具之:Tools 属性 http://blog.chengyunfeng.com/?p=755#ixzz4apLZhfmi 今天来介绍一些 Android 开发过程中比较有用但 ...

  3. xamarin开发的mac开发小工具集合

    兄弟们我拖控件拖到了mac系统去了, 工具上传到百度网盘,下载地址 链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww提取码:ljx2 这款工具我是用 ...

  4. Android 开发—— 小工具,大效率

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:姚志锋 一.Hugo插件 -- 打印方法运行时间 首先申明下,此Hugo非 彼Hugo(Hugo是由Go ...

  5. CSS便捷开发小工具汇总

    1.Prefix free 可以帮助开发者省去编写各种CSS3属性前缀的工作,只需要在页面中引入prefixfree.js即可. 2. Normalize 是一个CSS Reset工具, 相比传统的R ...

  6. Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)

    最近,QQ上好多各种gif表情.每一个都很经典呀..于是我就想把它转换成一张张静态图片...没学过ps.于是写了几行代码.完工.核心代码如下 主要是借助QMovie类.文件读取模式选择QMovie:: ...

  7. android 开发小工具收集

    http://blog.csdn.net/tikitoo/article/details/51089422

  8. Java开发 小工具累计

    array to list Integer[] spam = new Integer[] { 1, 2, 3 }; List<Integer> rlt = Arrays.asList(sp ...

  9. iOS开发小工具

    基本上在Mac Appstore里面都有,很多是免费的.因为某种原因要重装Mac系统(这么多年来首次重装Mac系统),特意整理了下备忘. 1.AppIcon: 可以瞬间把图片转换为应用所需要的Icon ...

随机推荐

  1. vc++ 判断文件或是文件夹是否存在,比较好的做法

    #include <windows.h> void main() { //文件或文件夹都可以判断,最后的\\号有无都没关系 !=GetFileAttributes("D:\\My ...

  2. PadLeft 和 PadRight

    1 PadLeft 即:向已知字符串左边补充字符,使整个字符串到达指定长度 CREATE FUNCTION PadLeft ( ),/*原始字符*/ @TotalLength int,/*总长度*/ ...

  3. python之路-Day7

    编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方 ...

  4. MIME Type

    一.首先,我们要了解浏览器是如何处理内容的.在浏览器中显示的内容有 HTML.有 XML.有 GIF.还有 Flash --那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME ...

  5. go 获取函数被调用的文件即行数

    import "runtime" _, file, line, ok = runtime.Caller(calldepth) 其中calldepth 指的调用的深度,为0时,打印当 ...

  6. oracle 队列

    Oracle 高级队列(AQ) 适用对象:初步了解oracle高级队列人群 注意事项: 序号 注意事项 1 JMS监听部分可参考官方文档: http://docs.oracle.com/cd/e128 ...

  7. Android的setVisibility(View.GONE)无效的问题及原因分析

    出现这种情况很可能是因为设置了animation,并且调用了setFillAfter(true),这就会导致setVisibility无效,只需要调用一下clearAnimation()方法或者去掉s ...

  8. ASP.NET ZERO 学习 HangFire的使用

    hangfire 是一个分布式后台执行服务. 官网:http://hangfire.io/ 1.启用 hangfire 2.Hangfire可以提供一个面板页面,实时显示所有后台作业的状态,你可以按它 ...

  9. jQuery Mobile 列表内容

    jQuery Mobile 列表缩略图 对于大于 16x16px 的图像,请在链接中添加 <img> 元素. jQuery Mobile 将自动把图像调整至 80x80px: 实例: &l ...

  10. 07-JAVA继承与接口

    动手动脑: 源程序: public class FuGai { public static void main(String[] args) { // TODO Auto-generated meth ...