2010-05-13 4 views
13

Ich habe viele Java-Domänenobjekte, die ich in DTOs transformieren muss.DTO und Mapper-Generierung von Domain-Objekten

Bitte beginnen Sie nicht mit der Anti-Pattern-Sache, die Domain-Objekte sind, was sie wegen einer langen Geschichte sind, und ich kann sie nicht ändern (oder nicht zu viel, siehe unten).

Also natürlich haben wir das Alter von all dem manuell passiert. Ich habe mich umgesehen, und der Dozer scheint der Rahmen der Wahl für das DTO-Mapping zu sein.

Aber ... was ich wirklich möchte, ist dies: mit Anmerkungen versehen Klassen und Felder, die ich in DTO werden soll, und ein Tool ausführen, das die DTOs und die Mapper erzeugen würde.

Klingt das zu unangemessen?

Gibt es ein solches Tool bereits?

+0

Möglicherweise, aber es könnte helfen, eine Idee zu bekommen, auf welche Sprache Sie sich beziehen. Java/.Net? – JasonTrue

+0

Ja ... Entschuldigung ... wurde mir nach dem Stellen der Frage klar. Ich habe es aktualisiert. –

+0

Dozer ist eine schreckliche, langsame, schwarze Box, schwer zu debuggen, schwer zu warten, alle Arten von Problemen Mapping Sammlungen, Aktualisieren von Objekten an Ort und Stelle mit jeder Art von komplexen Beziehung, schwierig zu individualisieren .... ugh. Besser, Ihr Mapping per Hand zu schreiben: schnell, debuggierbar, refactorable via IDE. Meine 2 ¢ –

Antwort

13

Betrachten ModelMapper Check-out.

Es vom Dozer unterscheidet und anderen dadurch, dass es die Menge an Konfiguration durch die intelligente Abbilden Objektmodelle benötigt minimiert. Wenn eine Konfiguration erforderlich ist, bietet ModelMapper eine Refactoring-sichere API, die tatsächlichen Code verwendet, um Eigenschaften und Werte zuzuordnen, anstatt Zeichenfolgenverweise oder XML zu verwenden.

Überprüfen Sie die ModelMapper Website für weitere Informationen aus:

http://modelmapper.org

+0

Nur ModelMapper nicht Mapper generieren, aber keine DTOs? – Alessio

6

Sie könnten in MapStruct, einen Codegenerator für Java Beans Mapper interessiert. Sie müssten Quellmodell (z. B. Ihre Domänenobjekte) und Zielmodell (z. B. DTOs) implementieren, und MapStruct generiert typsicheren und schnellen Code für die Zuordnung zwischen diesen Modellen (Disclaimer: Ich bin der Autor dieses Projekts).

2

Dieser Thread ist ein bisschen alt, aber wenn jemand ist immer noch versucht, dies zu tun, http://www.dtonator.org/ ist die beste Option, die ich bisher gefunden habe. Es ist das einzige Werkzeug, das ich gefunden habe, das tatsächlich die DTO-Dateien ERSTELLT und nicht an ein spezifisches Framework (Spring, Seam, etc.) oder IDE gebunden ist.