Генерация DTO и картографа из доменных объектов - PullRequest
16 голосов
/ 13 мая 2010

У меня есть много объектов домена java, которые мне нужно преобразовать в DTO.

Пожалуйста, не начинайте с анти-паттернов, доменные объекты - это то, чем они являются из-за длинной истории, и я не могу их изменить (или не слишком много, см. Ниже).

Итак, конечно, мы прошли возраст, когда все это делали вручную. Я огляделся вокруг, и кажется, что dozer является основой выбора для карт DTO.

Но ... то, что я действительно хотел бы, это: аннотировать классы и поля, которые мне нужны в DTO, и запускать инструмент, который генерировал бы DTO и средства отображения.

Это звучит слишком неразумно?

Такой инструмент уже существует?

Ответы [ 4 ]

13 голосов
/ 24 июня 2011

Рассмотрите возможность проверки ModelMapper .

Он отличается от Dozer и других тем, что сводит к минимуму объем конфигурации, необходимый для интеллектуального сопоставления объектных моделей. Там, где требуется настройка, ModelMapper предлагает безопасный API рефакторинга, который использует реальный код для сопоставления свойств и значений, а не с использованием строковых ссылок или XML.

Посетите сайт ModelMapper для получения дополнительной информации:

http://modelmapper.org

8 голосов
/ 11 августа 2013

Возможно, вас заинтересует MapStruct , генератор кода для картографов JavaBeans. Вам нужно будет реализовать исходную модель (например, ваши доменные объекты) и целевую модель (например, DTO), и MapStruct генерирует безопасный для типов и быстрый код для отображения между этими моделями (отказ от ответственности: я являюсь автором этого проекта).

3 голосов
/ 01 сентября 2017

Эта тема немного устарела, но если кто-то все еще пытается это сделать, http://www.dtonator.org/ - лучший вариант, который я нашел до сих пор. Это единственный инструмент, который мне удалось обнаружить, который на самом деле СОЗДАЕТ файлы DTO и не привязан к конкретной структуре (Spring, Seam и т. Д.) Или IDE.

2 голосов
/ 06 февраля 2013

Используйте GeDA - намного быстрее и гибче, чем все упомянутые картографы. http://inspire -software.com / слияния / дисплей / Геда / Геда + - + Generic + DTO + Assembler

В вики не так много примеров, но джунты (в источнике) их полны

...