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的使用方式,详见官方文档

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐