关于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的一次使用问题记录

关于Spring的BeanUtils

spring BeanUtils 工具实现对象之间的copy

Spring 之 BeanUtils.copyProperties(...) 源码简读

两难!到底用Apache BeanUtils还是Spring BeanUtils?

struts中Beanutils的三个方法运用