BeanCopier】的更多相关文章

Cglib是一款比较底层的操作java字节码的框架. BeanCopier是一个工具类,可以用于Bean对象内容的复制. 复制Bean对象内容的方法有很多,比如自己手动get set ,或者使用PropertyUtils或者使用BeanUtils BeanCopier与 PropertyUtils .BeanUtils的不同在于: PropertyUtils 和 BeanUtils 使用的是反射机制来完成属性的复制. 而BeanCopier 的原理是通过字节码动态生成一个类,这个里面实现get…
功能简介 对象拷贝的应用现状简介: 业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择. 目前流行的较为公用认可的工具类: Apache的两个版本:(反射机制) org.apache.commons.beanutils.PropertyUtils.copyProperties(Object dest, Object orig) org.apach…
在java的技术栈当中,著名的Cglib库里面有一个BeanCopier,这个类的功能就是可以完成两个对象的属性复制工作(哪怕属于两个不同的类). 今天本人通过.net内置的System.Reflection.Emit命名空间写了一个.net版本的BeanCopier,实现原理是基于Emit来直接操作中间代码,从而动态生成实现,类似于一个动态代理. Nuget安装依赖: Install-Package BeanCopier -Version 2.1.0 代码如下: using BeanCopie…
在做业务的时候,我们有时为了隔离变化,会将DAO查询出来的Entity,和对外提供的DTO隔离开来.大概90%的时候,它们的结构都是类似的,但是我们很不喜欢写很多冗长的b.setF1(a.getF1())这样的代码,于是我们需要BeanCopier来帮助我们.选择Cglib的BeanCopier进行Bean拷贝的理由是,其性能要比Spring的BeanUtils,Apache的BeanUtils和PropertyUtils要好很多,尤其是数据量比较大的情况下. BeanCopier基本用法 pu…
cglib是一款比较底层的操作java字节码的框架. 下面通过拷贝bean对象来测试BeanCopier的特性: public class OrderEntity { private int id; private String name; // Getters and setters are omitted } public class OrderDto { private int id; private String name; // Getters and setters are omit…
BeanCopier从名字可以看出了,是一个快捷的bean类复制工具类. 一 如何使用,我就直接丢代码了 public class BeanCopierTest { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) { // sameCopy(); // difCopy(); difCopyConvert();…
转自:http://www.cnblogs.com/kaka/archive/2013/03/06/2945514.html 比较的是四种复制的方式,分别为Apache的BeanUtils和PropertyUtils,Spring的BeanUtils,Cglib的BeanCopier.做法是在Eclipse新建了一个Project,专门用于专门测试几种代码的性能.具体的代码如下:        一个FromBean和一个ToBean,两个的代码基本上一样,除了类名称不一样,所以只是贴出来了一份.…
网上学习了一番BeanCopier类. cglib是一款比较底层的操作java字节码的框架. 下面通过拷贝bean对象来测试BeanCopier的特性: public class OrderEntity { private int id; private String name; // Getters and setters are omitted } public class OrderDto { private int id; private String name; // Getters…
BeanCopier是Cglib包中的一个类,用于对象的复制. 注意:目标对象必须先实例化  而且对象必须要有setter方法 初始化例子:   BeanCopier copier = BeanCopier.create(Source.class, Target.class, false); copier.copy(source, target, null); 第三个参数useConverter,是否开启Convert.默认BeanCopier只会做同名,同类型属性的copier,否则就会报错.…
BeanCopier进行的是bean之间的copy,从一个类到另一个类,进行属性值的拷贝. 成功copy的条件: 1.属性的类型和名称都相同 2.目标类的setter缺少或缺失会导致拷贝失败,名称相同类型不同的话,也会导致拷贝失败. 也可以用于生成指定类的封装类…