不知道从什么时候开始,大家都在批评Spring的BeanUtils.copyProperties,好像用这个方法复制bean的属性是劣质的,而且代码每分钟都是一堆代码和bug一样。但是相信这个方法在大家的项目中一定有很高的出镜率。今天我们就来分析一下BeanUtils.copyProperties经常被吐槽的点,是不是真的像大家说的那么糟糕。槽点1、如果不声明属性的get和set方法,会导致属性复制失败。首先我们要明白BeanUtils.copyProperties中sourceBean和targetBean的属性拷贝是通过反射中的Method完成的,所以如果Bean没有声明属性set和get方法,就不能在属性之间拷贝.所以不能说别人的框架有问题,就像我们不懂Springweb的原理,我们写的接口有问题,我们却说有问题Spring框架,岂不是犯罪?Slot2.copy是浅拷贝(对复制对象的引用)。BeanUtils.copyProperties的定位是快速浅拷贝。对于大多数场景来说,通过getset快速复制属性基本可以满足我们的日常需求。如果有深拷贝的需求,我们需要做的是更换拷贝工具,而不是抱怨BeanUtils.copyProperties有bug。槽点3.不同版本的Spring对属性泛型的处理方式不同@DatapublicclassSourceBean{privateList
