关于spring中BeanUtils的使用
Posted weixin_ancenhw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于spring中BeanUtils的使用相关的知识,希望对你有一定的参考价值。
1、简单说拷贝就是将一个类中的属性拷贝到另一个中,对于BeanUtils.copyProperties来说,你必须保证属性名是相同的,因为它是根据get和set方法来赋值的。
2、浅拷贝可以理解为如果是引用类型,那么目标对象拷贝的只是源对象的地址,无论目标对象还是源对象改变,他们都会一起改变
3、深拷贝就是将目标对象的属性全部复制一份给源对象,复制完之后他们就是隔开的,没有任何关系,无论操作源对象还是目标对象都对另一个没有影响
4、无论是浅拷贝还是深拷贝,对于基本类型和String来说都是没有影响的,有影响的只有引用类型数据
// 定义对象a
@Data
class a
private Integer id;
private String name;
private Date dateTime;
// 定义对象b
@Data
class b
private Integer id;
private String name;
private Date dateTime;
@Test
void contextLoads()
// 对a对象进行赋值
a a = new a();
a.setId(1);
a.setName("ancne");
a.setDateTime(new Date());
// 初始化对象b,并于b赋值
b b = new b();
//拷贝对象属性值
BeanUtils.copyProperties(a,b);
System.out.println(a);
System.out.println(b);
输出给结果:
DemoApplicationTests.a(id=1, name=ancne, dateTime=Sun Oct 02 11:26:34 CST 2022)
DemoApplicationTests.b(id=1, name=ancne, dateTime=Sun Oct 02 11:26:34 CST 2022)
以上是关于关于spring中BeanUtils的使用的主要内容,如果未能解决你的问题,请参考以下文章
spring BeanUtils 工具实现对象之间的copy
Spring 之 BeanUtils.copyProperties(...) 源码简读