Spring BeanUtils属性copy

时间:2022-07-23
本文章向大家介绍Spring BeanUtils属性copy,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

maven依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.0.9.RELEASE</version>
</dependency>

属性copy Demo

public class BeanUtilsTest {

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    static class DO{
        private Bean bean;
        private String name;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    static class DTO{
        private Bean bean;
        private String age;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    static class Bean{
        private String uid;
    }

    public static void main(String[] args) {
        Bean bean = new Bean("123");
        DO aDo = new DO(bean,"zhangsan");
        DTO aTo = new DTO();
        BeanUtils.copyProperties(aDo, aTo);
        // out => BeanUtilsTest.DTO(bean=BeanUtilsTest.Bean(uid=123), age=null)
        System.out.println(aTo);
        // 测试是否是浅拷贝
        bean.setUid("456");
        // out => BeanUtilsTest.DTO(bean=BeanUtilsTest.Bean(uid=456), age=null)
        System.out.println(aTo);
        // 结论: Spring BeanUtils 拷贝是浅拷贝
    }
}