系统选型 - Java Bean Copy组件的性能对比

本文通过测试Apache BeanUtils、Spring BeanUtils和Cglib BeanCopier,分析了它们在Bean复制操作中的性能差异。测试结果显示,原始的set/get方法性能最佳,Cglib BeanCopier次之,Spring BeanUtils性能最差且首次运行有额外开销。通过优化Cglib BeanCopier的创建过程,性能得到显著提升,接近set/get方法。
摘要由CSDN通过智能技术生成

公司系统中之前一直有使用组件进行Bean copy的操作,只是知道此操作对性能有影响,但是到底有多少影响心里一直没有数。现在对Bean copy进行测试获取量化的结果

目前Bean Copy的主流组件:

  • Apache BeanUtils

  • Spring BeanUtils

  • Cglib BeanCopier

    众所周知Apache BeanUtils性能太差,一般不推荐使用。这里不对其进行测试,只测试后面两个组件

测试环境:

  • JAVA8
  • Spring Boot 2.1.4.RELEASE
  • 本地普通台式机

测试代码:

测试功能:循环N次,将TelAppModel 对象中的属性复制到TelAppDto中,统计每种组件花费的时间,花费时间越少的性能越强。

测试POJO类
源类 TelAppModel.java 和目标类 TelAppDto.java,两个类都是简单的pojo类且成员变量相同。

普通的Java set/get方法实现Bean Copy, 代码如下:

public static void copySetGet(TelAppModel source, TelAppDto target){
       target.setId(source.getId());
       target.setTelPowerSavingMode((byte)0);
       target.setTelSecret(source.getTelSecret());
       tar
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值