背景

在分层应用的开发过程中,开发人员需要针对各层的特点封装不同的数据对象,如:VO(View Object,展示层对象)、DTO(Data Transfer Object,数据传输对象)、Entity/DO(Data Object,数据层对象)等。随之而来的就是数据对象的转换需求。

在不同层次的数据对象拷贝过程中,常用的处理方式有:

  • 手动拷贝:

    • 优点:代码可控性强,可以避免复杂对象拷贝的潜在问题

    • 缺点:编码复杂,后期维护难,字段容易有遗漏

  • Spring/Commons的BeanUtils:

    • 优点:使用简单,轻量

    • 缺点:只能处理简单的字段,无法处理复杂的映射

  • Dozer等映射框架:

    • 优点:开源,有很多项目实践检验

    • 缺点:不一定符合项目需求,对懒加载支持不好,扩展/修改困难

为了简化开发人员的工作,解决现有方案存在的问题以及更好地适应项目需要,commons-beans项目应运而生。

Last updated