2010-05-13 10 views
13

J'ai beaucoup d'objets de domaine Java que je dois transformer en DTO. S'il vous plaît, ne commencez pas par l'anti-pattern, les objets de domaine sont ce qu'ils sont en raison d'un long historique, et je ne peux pas les modifier (ou pas trop, voir ci-dessous). Donc, bien sûr, nous avons passé l'âge de faire tout cela manuellement. J'ai regardé autour, et le bulldozer semble le cadre de choix pour la cartographie DTO.Génération de DTO et de mappeur à partir d'objets de domaine

Mais ... ce que j'aimerais vraiment, c'est: annoter les classes et les champs que je veux dans DTO, et exécuter un outil qui génèrerait les DTO et les mappeurs.

Est-ce que cela semble trop déraisonnable?

Un tel outil existe-t-il déjà?

+0

Peut-être, mais cela pourrait aider à avoir une idée de la langue à laquelle vous faites référence. Java/.Net? – JasonTrue

+0

Oui ... désolé ... j'ai réalisé après avoir posé la question. Je l'ai mis à jour. –

+0

Dozer est une horrible, lente, boîte noire, difficile à déboguer, difficile à maintenir toutes sortes de problèmes cartographie des collections, mise à jour des objets en place avec n'importe quel type de relation complexe, difficile à personnaliser .... pouah. Mieux vaut écrire votre mapping à la main: rapide, débuggable, refactorisable via IDE. Mon 2 ¢ –

Répondre

13

Envisagez de vérifier ModelMapper. Dozer et d'autres, en ce sens qu'il minimise la quantité de configuration nécessaire en mappant intelligemment les modèles d'objets. Lorsque la configuration est nécessaire, ModelMapper propose une API de refactoring sécurisée qui utilise le code actuel pour mapper les propriétés et les valeurs plutôt que d'utiliser des références de chaîne ou du code XML.

Vérifiez le site ModelMapper pour plus d'informations:

http://modelmapper.org

+0

Ne pas ModelMapper uniquement générer des mappeurs mais pas des DTO? – Alessio

6

Vous pourriez être intéressé par MapStruct, un générateur de code pour JavaBeans cartographes. Vous devez implémenter le modèle source (par exemple vos objets de domaine) et le modèle cible (par exemple DTO), et MapStruct génère un code sûr et rapide pour le mappage entre ces modèles (avertissement: je suis l'auteur de ce projet).

2

Ce thread est un peu vieux, mais si quelqu'un essaie encore de le faire, http://www.dtonator.org/ est la meilleure option que j'ai trouvée jusqu'à présent. C'est le seul outil que j'ai pu trouver qui CREATE réellement les fichiers DTO et n'est pas lié à un framework spécifique (Spring, Seam, etc.) ou IDE.