禁止dozer映射空属性

原创 2016年08月31日 14:32:43

dozer是一个java bean copy类库,性能优于apache的BeanUtils,但是他们两个都会对空属性进行拷贝,这点很不方便。在dozer中可以使用xml映射禁用空属性拷贝,还得配置xml,感觉很麻烦。
其实可以构造一个BeanMappingBuilder,对mapping进行配置。

mapping(sources.getClass(), destination.getClass(), mapNull(false), mapEmptyString(false));

分别对

org.dozer.loader.api.TypeMappingOptions.mapEmptyString
org.dozer.loader.api.TypeMappingOptions.mapNull
设置成false即可。

于是可以封装成一个util

public static void copyProperties(final Object sources, final Object destination) {
        WeakReference weakReference = new WeakReference(new DozerBeanMapper());
        DozerBeanMapper mapper = (DozerBeanMapper) weakReference.get();
        mapper.addMapping(new BeanMappingBuilder() {
            @Override
            protected void configure() {
                mapping(sources.getClass(), destination.getClass(), mapNull(false), mapEmptyString(false));
            }
        });
        mapper.map(sources, destination);
        mapper.destroy();
        weakReference.clear();
    }
版权声明:本文来自kid_2412的csdn博客,欢迎转载!

相关文章推荐

Dozer(JavaBean的映射工具)开发手册

[-] 1并行对象层次使用前的准备 1 下载以下的部分2 第一个映射3 通过XML文件指示用户映射文件4 Dozer和依赖注入框架 使用 1普通使用 11 Dozer Bea...
  • whhahyy
  • whhahyy
  • 2015年09月20日 09:50
  • 11735

Dozer数据对象转换神器

首先,为什么要进行数据转换?       在一个分层的体系结构中,经常会使用DTO、PO、VO等封装数据,封装数据到特定的数据对象中,然而在很多情况下,某层内部的数据是不允许传递到其它层,不允许对外...

简单封装Dozer, 实现深度转换Bean到Bean的Mapper.实现:

import java.util.Collection; import java.util.List;import org.dozer.DozerBeanMapper;import com.goog...

Dozer实现对象间拷贝

项目中,经常会遇到各层对象之间相互进行值传递的过程,如在数据据持久层有一持久类ClassA,在视图层可能会变为ViewA,通常情况下,如果两个类结构一样,最常使用的是BeanUtils.copyPro...

DozerBeanMapper + 对象转Map方法

1、简介     dozer是一种JavaBean的映射工具,类似于apache的BeanUtils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映...
  • cbjcry
  • cbjcry
  • 2017年04月13日 10:49
  • 254

C语言实现字节流与十六进制字符串的相互转换

原文出自:http://blog.csdn.net/qq387732471/article/details/7360988 //字节流转换为十六进制字符串 void ByteToHexStr...
  • pingD
  • pingD
  • 2014年12月15日 16:58
  • 24110

软件项目开发环境构建之三:JIRA7.2.3安装

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。可以使用JIRA Software将收集到的需求,...
  • jamenew
  • jamenew
  • 2017年02月04日 17:02
  • 2682

dozer-javabean映射工具详解

简介 dozer是一种JavaBean的映射工具,类似于Apache的BeanUtils。它可以灵活地处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以...

Dozer轻松实现对象间属性复制

对外接口,一般都使用特定的DTO对象,而不会使用领域模型,以避免两者的变动互相影响。其他框架适配等情形,也可能需要DTO对象。   如果手工一个个属性的在两个对象间复制有点累人,如果对象里...

Logstash中配置默认索引映射(_default_属性)

ES中使用自动检测对索引字段进行索引,例如IP、日期自动检测(默认开启)、数字自动检测(默认关闭)进行动态映射自动为文档设定索引,当需要为字段指定特定的类型时,可能使用Mapping在索引生成定义映射...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:禁止dozer映射空属性
举报原因:
原因补充:

(最多只允许输入30个字)