Dozer BeanMapper 对象转换
dozer是什么?在开发过程中,常常会涉及到对象之间的转换,bean到dto到vo等等,dozer便是很好的一个对象转换的组件。它可以将一个对象递归拷贝到另外一个对象。既支持简单的对象映射,也支持复杂的对象映射。对象映射dozer支持两种映射方式,调用api的简单映射方式和使用xml的映射方式。api调用的方式约束我们定义的两个bean中的成员变量名要一样,方便自动映射,至于类型可以不一样,...
·
dozer是什么?
在开发过程中,常常会涉及到对象之间的转换,bean到dto到vo等等,dozer便是很好的一个对象转换的组件。它可以将一个对象递归拷贝到另外一个对象。既支持简单的对象映射,也支持复杂的对象映射。
对象映射
dozer支持两种映射方式,调用api的简单映射方式和使用xml的映射方式。api调用的方式约束我们定义的两个bean中的成员变量名要一样,方便自动映射,至于类型可以不一样,比如类A的成员变量 Integer num 和类B的 String num 是可以直接映射的。xml的方式是通过编写xml文件来定义映射规则。
dozer使用
使用dozer时,只需要加上dozer的依赖即可,下面以maven为例(版本号可以根据最新的做修改):
<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
<version>6.2.0</version>
</dependency>
如下是以简单映射方式封装的uitl:
public class BeanMapperUtils {
private static Mapper MAPPER = DozerBeanMapperBuilder.buildDefault();
public static <T> T map(Object source, Class<T> destinationClass) {
if (source == null) {
return null;
}
return MAPPER.map(source, destinationClass);
}
public static void map(Object source, Object destination) {
MAPPER.map(source, destination);
}
public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass) {
List<T> destinationList = new ArrayList<>();
for (Object sourceObject : sourceList) {
destinationList.add(MAPPER.map(sourceObject, destinationClass));
}
return destinationList;
}
}
关于dozer的详细介绍,以及通过编写xml的使用方式,详见官方文档。
更多推荐
已为社区贡献1条内容
所有评论(0)