2010-05-13 56 views
13

我有大量的java域对象,我需要转换到DTOs。从域对象DTO和映射器生成

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

所以,当然,我们已经超过了手动完成所有工作的年龄。 我环顾四周,而推土机似乎是DTO制图的首选框架。

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

这听起来太不合理了吗?

这样的工具已经存在吗?

+0

可能,但它可能有助于了解您所指的是哪种语言。的Java/.NET? – JasonTrue 2010-05-13 16:15:39

+0

是的......对不起......我问这个问题后意识到了。我已经更新了它。 – 2010-05-13 16:20:20

+0

推土机是一个可怕的,缓慢的黑盒子,很难调试,很难维护映射集合的各种问题,更新任何形式的复杂关系的对象,难以定制....呃。最好手动编写你的映射:通过IDE快速,可调试,可重构。我的2¢ – 2011-06-24 06:14:16

回答

13

考虑检查出ModelMapper

它与Dozer和其他人不同,它通过智能地映射对象模型来最小化所需的配置数量。在需要配置的地方,ModelMapper提供了一个重构安全API,它使用实际代码来映射属性和值,而不是使用字符串引用或XML。

退房的ModelMapper网站获取更多信息:

http://modelmapper.org

+0

仅限ModelMapper生成映射器但不是DTO? – Alessio 2016-03-24 11:24:46

6

的你可能在MapStruct有兴趣,对JavaBeans的制图者的代码生成器。您必须实现源模型(例如您的域对象)和目标模型(例如DTO),并且MapStruct会为这些模型之间的映射生成类型安全且快速的代码(声明:我是该项目的作者)。

2

此线程有点旧,但如果有人仍在尝试这样做,http://www.dtonator.org/是目前为止我发现的最佳选择。它是我能够发现的唯一一个实际创建DTO文件的工具,并且不依赖于特定的框架(Spring,Seam等)或IDE。