简单记录下Spring的BeanUtils和Apache的BeanUtils两者异同

	记录一次Spring的BeanUtils和Apache的BeanUtils两者的坑:
	先说一下背景原因,由于公司合规检查不让使用Apache的commons-beanutils包,改用Spring自带的spring-beans包(包含在SpringBoot中),结果在实际操作中,发生了异常,通过排查发现,两者主要有以下两个不同点。
	先准备两个简单的Entity,**两者仅status的类型不同**:

在这里插入图片描述
在这里插入图片描述
接下来我们测试一下:
在这里插入图片描述
通过对比可以看出,两个工具包的copyProperties()方法参数位置是相反的,即:
Spring的BeanUtils.copyProperties(oldObject, newObject);
Apache的BeanUtils.copyProperties(newObject, oldObject);
接下来我们看看结果:
在这里插入图片描述
通过对比,我们可以看出,由于status的类型不同:
Spring的BeanUtils.copyProperties(oldObject, newObject)的这个方法不会将oldObject的status属性赋值给newObject;
Apache的BeanUtils.copyProperties(newObject, oldObject)的这个方法可以将oldObject的status属性赋值给newObject;
换句话说,前者不能根据属性名称赋值,而后者可以
以上就是一次关于Spring的BeanUtils和Apache的BeanUtils两者异同的简单分析,希望你们能少踩这样的坑。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值