美文网首页JAVA基础
Spring BeanUtils属性copy

Spring BeanUtils属性copy

作者: 夹胡碰 | 来源:发表于2020-08-24 15:12 被阅读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?

    相关文章

      网友评论

        本文标题:Spring BeanUtils属性copy

        本文链接:https://www.haomeiwen.com/subject/lgkejktx.html