BeanUtils.copyProperties缓解代码压力,释放双手

Posted xuchao0506

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeanUtils.copyProperties缓解代码压力,释放双手相关的知识,希望对你有一定的参考价值。

简单描述:之前在写代码的时候,经常把表单提交到后台的对象的参数,通过getter方法取出来,然后,再通过setter方法传递给需要的对象,代码中写了很多get set这种方法,后来听同事说,spring有一个BeanUtils.copyProperties()方法,可以代替我们手动来完成取值赋值的操作。我就试了试,发现果然可以。

BeanUtils.copyProperties(courseObj, courseVo);//把courseObj里的属性通过反射赋值给courseVo里相同的属性,不同的不赋值   前赋后

下边是spring 的BeanUtils中copyProperties方法的源码:

技术分享图片

上边注释的意思就是:复制源bean的参数值给目标bean    源Class和目标Class不必相互匹配甚至相互派生彼此(我的理解是不需要有父子继承关系),只要参数匹配就行。任何源bean暴露(拥有)的参数,而目标bean没有的参数都会被忽略。意思就是指复制那些两者都有的参数值给目标对象。这是一个很方便的方法,对于更复杂的转换需求,考虑使用一个完整的BeanWrapper。  嗯嗯,就这样啦。

真的是省了很多的这种代码 courseVo.setName(courseObj.getName());

另外 apache也提供有copyProperties()方法,apache的org.apache.commons.beanutils就提供了两种,一个是子包org.apache.commons.beanutils.BeanUtils---->copyProperties() 另一个是子包org.apache.commons.beanutils.PropertyUtils--->copyProperties(),不过需要注意的是这两个方法的参数和spring的参数位置是相反的    copyProperties(target, source)   

 

以上是关于BeanUtils.copyProperties缓解代码压力,释放双手的主要内容,如果未能解决你的问题,请参考以下文章

BeanUtils.copyProperties的用法

BeanUtils.copyProperties的用法

关于BeanUtils.copyProperties()用法和区别

使用 BeanUtils.copyProperties 复制特定字段?

BeanUtils.copyProperties VS PropertyUtils.copyProperties

Spring 之 BeanUtils.copyProperties(...) 源码简读