用BeanCopier实现属性copy
偶然发现有个属性拷贝的类比较好用,比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相关推荐
- BeanCopy和BeanCopier在实际开发中的使用(属性copy效率优化)
优化场景: 项目的实体类主要分为三种:dto.dao.query等,所以属性copy避免不了,是影响代码执行效率的主要方面之一. 当时的情况是,项目A接受url请求,然后会调用项目B的一个接口去处理明 ...
- spring的BeanUtils属性copy
1.使用 BeanUtils.copyProperties将一个对象的属性copy到另外一个对象中. 2.copy的原理是获取需要copy属性的属性描述器(PropertyDescriptor),获取 ...
- 为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在日常开发中,我们经常需要给对象进行赋值,通常会调用其se ...
- 阿里巴巴为什么禁止使用Apache Beanutils进行属性复制?
作者 l Hollis 来源 l Hollis(ID:hollischuang) 在日常开发中,我们经常需要给对象进行赋值,通常会调用其set/get方法,有些时候,如果我们要转换的两个对象之间属性大 ...
- BeanCopier 详解
BeanCopier 实现属性拷贝的主要代码: BeanCopier beanCopier = BeanCopier.create(dad.getClass(), dadly.getClass() ...
- BeanUtils和BeanCopier
BeanUtils <!-- 原型设计模式:复制属性-->Maven包<dependency><groupId>commons-beanutils</grou ...
- cglib、orika、spring等bean copy工具性能测试和原理分析
简介 在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO.DTO.Entity.DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护.通常情况下,这 ...
- 利用java反射机制,子类从父类拷贝属性--解决信息修改类设计的模式
用例场景:在一个商户管理系统中,操作人员对一个已注册的商户进行修改,这就触发了一个商户修改的工作流,修改提交后,修改的商户信息和原商户信息会传递到审核人员的窗口进行审核,审核完毕后,新商户信息更新,同 ...
- 页面传值:属性,协议,Block传值
1.属性传值和协议传值 1 #import "RootViewController.h" 2 #import "SecondViewController.h" ...
最新文章
- java me sdk_Java ME SDK 3.0不运行的问题及解决
- 明晚8点直播 | Transformer新型神经网络在机器翻译中的应用
- 多通道图像的通道分享和合成函数-split、merge
- Nginx的File not found 错误解决
- 如何基于ERP的sales organization 创建CRM对应的数据
- html中如何实现选择存储路径的功能_16687.VSM006分解03_如何打开HTML内嵌图像存储位置...
- centos 7 快速安装nginx
- .NET 程序下锐浪报表 (Grid++ Report) 的绿色发布指南
- 也说 Jquery+ASP.NET 实现开心网上传头像剪裁功能
- pytorch 基于sqs2sqs的中文聊天机器人
- 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用
- 系统服务图形化安装卸载工具SRVINSTW汉化版
- 名将戚继光与北蒙之战
- Sematic UI框架的学习-button样式(1)
- U盘PE系统下安装WIN2003和WINXP的方法(非GHOST版)
- 用Matlab实现人脸 68 landmarks详细教程
- 5分钟搞定内网穿透工具-ngrok
- 强化学习代码 (肖志清)部分
- 和讯金融界证券之星 财经网站竞争格局突变
- e成科技人岗匹配中的匹配模型