JAVA基础

Spring BeanUtils属性copy

2020-08-24  本文已影响0人  夹胡碰

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 拷贝是浅拷贝
    }
}

参考

  1. 为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?
上一篇 下一篇

猜你喜欢

热点阅读