DTO и создание карттора из объектов домена
У меня есть много объектов домена Java, которые мне нужно преобразовать в DTO.
Пожалуйста, не начинайте с объекта анти-шаблона, объекты домена - это то, что они из-за длинной истории, и я не могу их изменить (или не слишком много, см. ниже).
Итак, мы, конечно же, прошли все это вручную.
Я огляделся, и бульдозер кажется рамкой выбора для отображения DTO.
Но... мне бы очень хотелось: аннотировать классы и поля, которые я хочу в DTO, и запустить инструмент, который будет генерировать DTO и mappers.
Это звучит слишком необоснованно?
Есть ли такой инструмент уже существует?
Ответы
Ответ 1
Рассмотрите возможность проверки ModelMapper.
Он отличается от Dozer и других тем, что он минимизирует объем конфигурации, необходимый для интеллектуального сопоставления объектных моделей. В случае необходимости конфигурации ModelMapper предлагает безопасный API для рефакторинга, который использует фактический код для сопоставления свойств и значений, а не с использованием ссылок на строки или XML.
Зайдите на сайт ModelMapper для получения дополнительной информации:
http://modelmapper.org
Ответ 2
Вам может быть интересно MapStruct, генератор кода для JavaBeans-mappers. Вам нужно будет внедрить исходную модель (например, объекты вашего домена) и целевую модель (например, DTO), а MapStruct генерирует безопасный тип и быстрый код для сопоставления между этими моделями (отказ от ответственности: я являюсь автором этого проекта).
Ответ 3
Использование GeDA - намного быстрее и гибче, чем все упомянутые картографы.
http://inspire-software.com/confluence/display/GeDA/GeDA+-+Generic+DTO+Assembler
В wiki не так много примеров, но junits (в источнике) заполнены ими
Ответ 4
Этот поток немного устарел, но если кто-то все еще пытается это сделать, http://www.dtonator.org/ - лучший вариант, который у меня есть найденных до сих пор. Это единственный инструмент, который я смог найти, который на самом деле СОЗДАЕТ файлы DTO и не привязан к определенной структуре (Spring, Seam и т.д.) Или IDE.