• 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)   

  • 相关阅读:
    二分专题
    数据结构-图
    Linux文件基本属性(以ls -l输出为例解释)
    shell脚本版素数筛
    Linux whereis,which
    Linux外网代理配置
    Linux三剑客
    Elasticsearch集群搭建(Linux)
    测试之路
    我的另一半
  • 原文地址:https://www.cnblogs.com/xuchao0506/p/10172357.html
Copyright © 2020-2023  润新知