1.简易封装工具类
package com.jianlejun.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.dozer.DozerBeanMapper;
public class BeanMapper {
private static DozerBeanMapper dozer = new DozerBeanMapper();
/**
* 构造新的destinationClass实例对象,通过source对象中的字段内容
* 映射到destinationClass实例对象中,并返回新的destinationClass实例对象。
*
* @param source 源数据对象
* @param destinationClass 要构造新的实例对象Class
*/
public static <T> T map(Object source, Class<T> destinationClass)
{
return dozer.map(source, destinationClass);
}
public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass)
{
//List destinationList = Lists.newArrayList();
List destinationList = new ArrayList();
for (Iterator i$ = sourceList.iterator(); i$.hasNext(); ) { Object sourceObject = i$.next();
Object destinationObject = dozer.map(sourceObject, destinationClass);
destinationList.add(destinationObject);
}
return destinationList;
}
/**
* 将对象source的所有属性值拷贝到对象destination中.
*
* @param source 对象source
* @param destination 对象destination
*/
public static void copy(Object source, Object destinationObject)
{
dozer.map(source, destinationObject);
}
}
2.引入pom
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.4.0</version>
</dependency>
3.配置dozer配置文件
3.1 路径
3.2 dozer配置文件
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<!-- 个性化配置请参考dozer官方文档-->
</mappings>
4.springmvc中配置dozer
<bean id="mapper" class="org.dozer.spring.DozerBeanMapperFactoryBean">
<property name="mappingFiles">
<list>
<value>classpath*:dozer/dozer-mapping.xml</value>
</list>
</property>
</bean>
5.使用
People p = BeanMapper.map(obj, People.class);
6.总结
使用dozer避免了繁缛的getter/setter,尤其是在成员变量繁多的情况,使得代码整体可读性大大增加,官方:http://dozer.sourceforge.net