偶然发现有个属性拷贝的类比较好用,比org.springframework.beans.BeanUtils性能好.

先看用法:

public static void main(String[] args) {PayUserThirdaccountVO payUserThirdaccount = new PayUserThirdaccountVO();payUserThirdaccount.setId("1");payUserThirdaccount.setThirdpaySystemId("2");payUserThirdaccount.setThirdpayProviderId("3");payUserThirdaccount.setThirdpayUserId("4");payUserThirdaccount.setThirdpayUserName("5");payUserThirdaccount.setThirdpayOpenId("6");payUserThirdaccount.setThirdpayOpenName("7");payUserThirdaccount.setThirdpayUserGrade("8");payUserThirdaccount.setUserId("9");payUserThirdaccount.setState("10");payUserThirdaccount.setStartTime(new Date());payUserThirdaccount.setStopTime(new Date());payUserThirdaccount.setAvailBalance(new BigDecimal("1"));payUserThirdaccount.setTotalBalance(new BigDecimal("1"));payUserThirdaccount.setInvoiceBalance(new BigDecimal("1"));payUserThirdaccount.setOthBankPayeeSubAcc("23");payUserThirdaccount.setOthBankPayeeSubAccName("23");payUserThirdaccount.setOthBankPayeeSubAccSetteName("23");PayUserThirdaccountDTO payUserThirdaccountDTO = new PayUserThirdaccountDTO();BeanCopier copier = BeanCopier.create(PayUserThirdaccountVO.class,PayUserThirdaccountDTO.class,false);copier.copy(payUserThirdaccount,payUserThirdaccountDTO,null);System.out.println(JSON.toJSONString(payUserThirdaccountDTO));}

关键代码是

BeanCopier copier = BeanCopier.create(PayUserThirdaccountVO.class,PayUserThirdaccountDTO.class,false);copier.copy(payUserThirdaccount,accountBalanceDTO,null);

先创建了一个映射模板,然后调用copy方法,加快了属性映射.

当然也可以设置自己的转换规则

BeanCopier copier = BeanCopier.create(PayUserThirdaccountVO.class,PayUserThirdaccountDTO.class,true);

然后实现net.sf.cglib.core.Converter#convert方法

MyConverter implements Converter

然后把对象放到copy方法的参数里

copier.copy(payUserThirdaccount,accountBalanceDTO,myConverter);

用BeanCopier实现属性copy相关推荐

  1. BeanCopy和BeanCopier在实际开发中的使用(属性copy效率优化)

    优化场景: 项目的实体类主要分为三种:dto.dao.query等,所以属性copy避免不了,是影响代码执行效率的主要方面之一. 当时的情况是,项目A接受url请求,然后会调用项目B的一个接口去处理明 ...

  2. spring的BeanUtils属性copy

    1.使用 BeanUtils.copyProperties将一个对象的属性copy到另外一个对象中. 2.copy的原理是获取需要copy属性的属性描述器(PropertyDescriptor),获取 ...

  3. 为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在日常开发中,我们经常需要给对象进行赋值,通常会调用其se ...

  4. 阿里巴巴为什么禁止使用Apache Beanutils进行属性复制?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 在日常开发中,我们经常需要给对象进行赋值,通常会调用其set/get方法,有些时候,如果我们要转换的两个对象之间属性大 ...

  5. BeanCopier 详解

     BeanCopier 实现属性拷贝的主要代码:  BeanCopier beanCopier = BeanCopier.create(dad.getClass(), dadly.getClass() ...

  6. BeanUtils和BeanCopier

    BeanUtils <!-- 原型设计模式:复制属性-->Maven包<dependency><groupId>commons-beanutils</grou ...

  7. cglib、orika、spring等bean copy工具性能测试和原理分析

    简介 在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO.DTO.Entity.DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护.通常情况下,这 ...

  8. 利用java反射机制,子类从父类拷贝属性--解决信息修改类设计的模式

    用例场景:在一个商户管理系统中,操作人员对一个已注册的商户进行修改,这就触发了一个商户修改的工作流,修改提交后,修改的商户信息和原商户信息会传递到审核人员的窗口进行审核,审核完毕后,新商户信息更新,同 ...

  9. 页面传值:属性,协议,Block传值

    1.属性传值和协议传值 1 #import "RootViewController.h" 2 #import "SecondViewController.h" ...

最新文章

  1. java me sdk_Java ME SDK 3.0不运行的问题及解决
  2. 明晚8点直播 | Transformer新型神经网络在机器翻译中的应用
  3. 多通道图像的通道分享和合成函数-split、merge
  4. Nginx的File not found 错误解决
  5. 如何基于ERP的sales organization 创建CRM对应的数据
  6. html中如何实现选择存储路径的功能_16687.VSM006分解03_如何打开HTML内嵌图像存储位置...
  7. centos 7 快速安装nginx
  8. .NET 程序下锐浪报表 (Grid++ Report) 的绿色发布指南
  9. 也说 Jquery+ASP.NET 实现开心网上传头像剪裁功能
  10. pytorch 基于sqs2sqs的中文聊天机器人
  11. 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用
  12. 系统服务图形化安装卸载工具SRVINSTW汉化版
  13. 名将戚继光与北蒙之战
  14. Sematic UI框架的学习-button样式(1)
  15. U盘PE系统下安装WIN2003和WINXP的方法(非GHOST版)
  16. 用Matlab实现人脸 68 landmarks详细教程
  17. 5分钟搞定内网穿透工具-ngrok
  18. 强化学习代码 (肖志清)部分
  19. 和讯金融界证券之星 财经网站竞争格局突变
  20. e成科技人岗匹配中的匹配模型

热门文章

  1. 你的数据库真的需要迁移到云吗?
  2. 智慧校园大数据云平台(4)
  3. 颜色(二):CGColor
  4. modelsim 独立仿真vivado fifo IP核
  5. vue中引入第三方js
  6. 乐享集团吹响兴趣电商出海集结号
  7. Python常用三角函数
  8. future java fork_将Java Future转换为CompletableFuture
  9. 解决使用HbuilderX打包vue项目后,按物理返回键直接退出程序的问题
  10. oracle max clob,oracle clob字段无法用yugong做同步