BeanUtils.copyProperties的简单使用教程

背景介绍

  1.在serviceImpl层使用DTO拷贝到entity,然后保存到数据库;

  2. 在serviceImpl层使用entity拷贝到DTO,然后把数据返回到页面;  

  3.把父类的属性拷贝到子类中。  

方案选择

   1.一个一个属性的set。

  2.使用封装好的BeanUtils.copyProperties

tips:

  1.BeanUtils.copyProperties属于浅拷贝,引用的一个内存地址。(深拷贝基本类型值传递,引用类型创建新对象,并复制其内容。)  

  2.spring的BeanUtils : 

  方法:copyProperty和copyProperties

  参数:src ,dest

  commons的BeanUtils:

  方法:copyProperties

  参数:dest,src

  3.commons-beantutils 对于对象拷贝加了很多的检验,包括类型的转换,甚至还会检验对象所属的类的可访问性,可谓相当复杂,这也造就了它的差劲的性能。

   spring下的BeanUtils也是使用 copyProperties方法进行拷贝,只不过它的实现方式非常简单,就是对两个对象中相同名字的属性进行简单的get/set,仅检查属性的可访问性。

  推荐使用spring下的BeanUtils。

使用方案

  1.基本赋值

org.springframework.beans.BeanUtils.copyProperties(src, dest);

  2.部分赋值

org.springframework.beans.BeanUtils.copyProperties(src, dest,ignoreProperty);
org.springframework.beans.BeanUtils.copyProperties(src, dest,String... ignorePropertys);
tips:
参数 String... ignorePropertys可以忽略多个属性;
如:String [] ignorePropertys = new String[]{"Property1","Property2"};

 

笔者: 沙漏倒装回忆1024

出处https://www.cnblogs.com/lpan1024/

版权所有,欢迎保留原文链接进行转载!

请点赞关注留言,如果有任何建议也可以留言,因为我会回复每一条评论,感谢阅读。

posted @ 2022-09-18 12:25  沙漏倒装回忆1024  阅读(527)  评论(0编辑  收藏  举报