Dozer BeanMapper 对象转换

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.dozermappergroupId>
    <artifactId>dozer-coreartifactId>
    <version>6.2.0version>
dependency>

如下是以简单映射方式封装的uitl:

public class BeanMapperUtils {

    private static Mapper MAPPER = DozerBeanMapperBuilder.buildDefault();

    public static  T map(Object source, Class 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  List mapList(Collection sourceList, Class destinationClass) {
        List destinationList = new ArrayList<>();
        for (Object sourceObject : sourceList) {
            destinationList.add(MAPPER.map(sourceObject, destinationClass));
        }
        return destinationList;
    }
}

关于dozer的详细介绍,以及通过编写xml的使用方式,详见官方文档。

你可能感兴趣的:(Java,dozer,BeanMapper)