禁止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
  • 13711

Dozer开发手册

1.为什么要映射 一个映射的框架在一个分层的体系架构中非常有用,特别是你在创建一个抽象的分层去包装一些特殊数据的变化 vs 这些数据传输到其它层(外部服务的数据对象、领域的数据对象、数据传输对象、内部...
  • tiandesheng111
  • tiandesheng111
  • 2014年09月14日 17:32
  • 6505

DozerBeanMapper对象之间相同属性名赋值

在业务逻辑很复杂的时候,一般都是牵涉到
  • luo201227
  • luo201227
  • 2014年04月18日 15:39
  • 10454

DozerBeanMapper + 对象转Map方法

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

Dozer更加灵活给对象赋值,对象间拷贝

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

Dozer 简单封装实现深度转换Bean<->Bean的Mapper

/** * 简单封装Dozer, 实现深度转换BeanBean的Mapper.实现: * * 1. 持有Mapper的单例. * 2. 返回值类型转换. * 3. 批量转换Collec...
  • qq_27720567
  • qq_27720567
  • 2017年03月17日 21:08
  • 574

Java Bean 映射工具 Dozer (转)

   分析多层架构的JEE系统,经常存在JavaBean直接的拷贝。比如在DAO层,我们通过POJO取得业务层需要的数据,将这些数据传递给Service层的VO。POJO与VO就存在典型...
  • zh_fn
  • zh_fn
  • 2014年02月20日 13:46
  • 1551

BeanUtils、PropertyUtils、Dozer

测试用例: package com.cn.copy.service; import java.lang.reflect.InvocationTargetException; import j...
  • xiaohai0504
  • xiaohai0504
  • 2012年07月19日 17:36
  • 5090

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

import java.util.Collection; import java.util.List;import org.dozer.DozerBeanMapper;import com.goog...
  • guanfengliang1988
  • guanfengliang1988
  • 2016年06月01日 17:47
  • 2557

JavaBean之间拷贝利器-Dozer 映射数据类型不一致,级联映射与自定义映射

今天我们来讨论如何使用Dozer映射复杂类型:             1. 数据类型不一致。             2. 级联映射。             3. 自定义映射。     在讨论之前...
  • libing13810124573
  • libing13810124573
  • 2013年12月12日 13:04
  • 878
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:禁止dozer映射空属性
举报原因:
原因补充:

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