2010-05-13 55 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。