一、引入的包
BeanCopier来自于
net.sf.cglib.beans.BeanCopier
BeanUtils
org.springframework.beans.BeanUtils
二、原理不一样
BeanCopier使用的是cglib 动态代理
BeanUtils使用的是反射机制
三、性能不一样
InsureReportSave insureReportSave = new InsureReportSave();
insureReportSave.setReporterUserId(123l);
insureReportSave.setCreateTime("!@$$%%$TGgg3444");
insureReportSave.setEnivoiceJson("fnjfjfj");
InsureReportClaimDrafRequest reportClaimDrafRequest = new InsureReportClaimDrafRequest();
long start = System.currentTimeMillis();
for (int i=0;i<1000000;i++){
BeanUtils.copyProperties(insureReportSave,reportClaimDrafRequest);
}
System.out.println(System.currentTimeMillis()-start);
long start2 = System.currentTimeMillis();
BeanCopier beanCopier = BeanCopier.create(InsureReportSave.class, InsureReportClaimDrafRequest.class,
false);
for (int i=0;i<1000000;i++){
beanCopier.copy(insureReportSave,reportClaimDrafRequest,null);
}
System.out.println(System.currentTimeMillis()-start2);