代码之家  ›  专栏  ›  技术社区  ›  Nicolas C

从域对象生成DTO和映射器

  •  16
  • Nicolas C  · 技术社区  · 15 年前

    我有很多Java域对象,我需要转换成DTOs。

    请不要从反模式的事情开始,因为历史悠久,域对象就是它们的样子,我不能修改它们(或者不太多,见下文)。

    所以,当然,我们已经超过了手工操作的年龄。 我环顾四周,推土机似乎是DTO映射的选择框架。

    但是…我真正想要的是:在DTO中注释我想要的类和字段,并运行一个工具来生成DTO和映射器。

    这听起来太不合理了吗?

    这样的工具已经存在了吗?

    4 回复  |  直到 7 年前
        1
  •  13
  •   Jonathan    14 年前

    考虑签出 ModelMapper .

    它不同于推土机和其他机器,因为它可以最小化智能映射对象模型所需的配置量。在需要配置的地方,ModelMapper提供了一个重构安全的API,它使用实际的代码来映射属性和值,而不是使用字符串引用或XML。

    查看ModelMapper站点以了解更多信息:

    http://modelmapper.org

        2
  •  8
  •   Gunnar    11 年前

    你可能对 MapStruct 一个用于JavaBeans映射器的代码生成器。您必须实现源模型(例如,您的域对象)和目标模型(例如,DTO),并且mapstruct生成类型安全和快速的代码来在这些模型之间进行映射(免责声明:我是这个项目的作者)。

        3
  •  2
  •   Denis    12 年前

    使用GEDA——比所有提到的映射器都更快、更灵活。 http://inspire-software.com/confluence/display/GeDA/GeDA+-+Generic+DTO+Assembler

    wiki上的例子不多,但是junit(在源代码中)中有很多。

        4
  •  2
  •   pbuchheit    7 年前

    这条线有点旧,但如果有人仍在尝试这样做, http://www.dtonator.org/ 是目前为止我找到的最好的选择。它是我能找到的唯一一个真正创建DTO文件的工具,并且没有绑定到特定的框架(Spring、Seam等)或IDE。