`

BeanUtils.copyProperties和beanCopier.copy的性能差距

阅读更多
public static void main(String[] args) {
        MobileCardCompanyDO cardPayOrderModel = new MobileCardCompanyDO();
        cardPayOrderModel.setCompanyCode("HS");
        cardPayOrderModel.setCompanyDesc("a1231241241awdasdf");
        cardPayOrderModel.setCompanyName("123124dzvsds");
        cardPayOrderModel.setId(2l);
        cardPayOrderModel.setStatus("1");
        CompanyModel companyModel = new CompanyModel();

        /**
         * 10W次 
         * BeanUtils.copyProperties:718 
         * beanCopier.copy:56
         */

        /**
         * 100W次 
         * BeanUtils.copyProperties:5673 
         * beanCopier.copy:70
         */

        //BeanUtils性能
        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            BeanUtils.copyProperties(cardPayOrderModel, companyModel);
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);

        //BeanCopier性能
        long start1 = System.currentTimeMillis();
        BeanCopier beanCopier = BeanCopier.create(MobileCardCompanyDO.class, CompanyModel.class,
            false);
        for (int i = 0; i < 1000000; i++) {
            beanCopier.copy(cardPayOrderModel, companyModel, null);
        }
        long end1 = System.currentTimeMillis();
        System.out.println(end1 - start1);
    }


如果系统中有很多属性拷贝,对系统的性能还是有影响的。建议使用cglib。
分享到:
评论
1 楼 zyq521140 2018-01-16  
    受益匪浅

相关推荐

    BeanMapper:比BeanUtils.copyProperties更快

    一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在...

    java Beanutils.copyProperties( )用法详解

    BeanUtils.copyProperties() 方法和 PropertyUtils.copyProperties() 方法的主要区别是,BeanUtils.copyProperties() 方法会进行类型转换,而 PropertyUtils.copyProperties() 方法不会。因此,BeanUtils....

    如何使用BeanUtils.copyProperties进行对象之间的属性赋值

    在上面的例子中,`User`和`Employee`类都有相同的属性`name`和`age`,因此`BeanUtils.copyProperties`能够成功地将`User`对象的属性赋值给`Employee`对象。 对于包含列表的情况,例如我们需要将一个包含`Employee`...

    BeanUtilsBean对象复制使用(类型可以自动转化)

    import org.apache.commons.beanutils.PropertyUtilsBean; public class BeanUtilsCopy { public static void main(String[] args) { Source source = new Source(); // 初始化源对象的属性... Destination ...

    commons-beanutils.jar.zip

    1. **属性拷贝**:BeanUtils.copyProperties()方法可以实现两个JavaBean对象之间的属性值拷贝,极大地减少了代码量。 2. **动态属性访问**:通过BeanUtils.getProperty()和BeanUtils.setProperty(),我们可以动态地...

    [] - 2022-11-22 使用 BeanUtils.copyProperties 踩坑经历.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    org.apache.commons.beanutils.jar

    1. **属性操作**:BeanUtils提供了`getProperty()`和`setProperty()`方法,用于获取和设置JavaBean对象的属性值。这些方法通过反射机制动态地解析属性名,从而无需硬编码getter和setter方法的调用。 2. **类型转换*...

    commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包

    commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包

    commons-beanutils.jar下载

    commons-beanutils.jar commons-beanutils.jar

    commons-beanutils.jar

    《深入理解Apache ...正确导入和使用"commons-beanutils.jar"能够避免在数据绑定和转换过程中出现错误,提高代码的效率和质量。因此,对于任何涉及JavaBean操作的项目,理解和熟练运用BeanUtils库都是非常必要的。

    org.apache.commons.beanutils.BeanUtils实例

    此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。

    BeanUtils.jar

    2. **类型转换**:BeanUtils.setProperty()和BeanUtils.getProperty()方法允许在设置和获取属性值时自动进行类型转换,使得不同类型的属性之间可以进行交互。 3. **空值处理**:BeanUtils还提供了处理null值的方法...

    commons-beanutils.jar+commons-logging.jar

    Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar和api文档,以及其依赖的commons-logging-1.2.jar包

    json用到的jar包(commons-beanutils.jar、commons-collections-3.1.jar等)

    json相关jar包(不使用springmvc开发时)。其中包含(commons-beanutils.jar、commons-collections-3.1.jar、commons-lang-2.6.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar)

    commons.jar +commons-beanutils.jar

    标题中的"commons.jar +commons-beanutils.jar"指的是Apache Commons项目中的两个核心组件:commons.jar和commons-beanutils.jar。Apache Commons是Java编程语言中的一系列小型实用程序库,为开发人员提供了各种常见...

    commons-beanutils.jar、commons-logging.jar两个包

    beanUtils 方便访问javaBean 附带支持框架 logging jar包,Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar,以及其依赖的commons-logging-1.2.jar包

Global site tag (gtag.js) - Google Analytics