Альтернатива бульдозеру для картирования бобов? [закрыто]
-
05-07-2019 - |
Вопрос
Я пытаюсь найти простой способ сопоставления DTO с объектами без стандартного кода. Пока я думал об использовании dozer, мне кажется, что требуется много настроек xml. Кто-нибудь видел альтернативу dozer, которая использует DSL для настройки отображения bean-компонентов в чистой Java?
В идеале я надеюсь найти бобового картографа, вдохновленного тем, как Гисе делает вещи.
Решение
Я тоже искал альтернативы. Р>
Здесь очень хорошее освещение различных вариантов . р>
Другие советы
Посмотрите на Orika .
Orika - это среда отображения Java Bean, которая рекурсивно копирует (среди прочих возможностей) данные из одного объекта в другой. Это может быть очень полезно при разработке многослойных приложений.
С моей точки зрения, конфигурация или код Java для сопоставления некоторых специальных свойств всегда необходимы. Р>
Здесь я хочу взять DO
и DTO
например
DO:{
id: "id",
name:"name",
doName1: "doName1",
nestedObj: {
id: "nestedObjId",
name: "nestedObjName"
}
}
DTO{
id: "",
name: "",
name1: "" // for mapping doName1 in DO.
nestedId: "", //for DT.nestObj.id
nestedName: "", //for DT.nestObj.name
}
Для Dozer или Orika они оба могут автоматически сопоставлять свойства идентификатора и имени между DO и DTO без какой-либо конфигурации или кода Java, поскольку они имеют одинаковые имена и типы свойств.
Но если вы хотите DO.doName1
& Lt; ---- & Gt; DTO.name1
или DO.nestedObj.id
< --- > DTO.nestedId
вам нужно выполнить некоторую настройку (через xml или java), чтобы сообщить инструменту отображения, что вы собираетесь это сделать.
Я думаю, что для вашего случая использования Dozer, Orika и ModelMapper все в порядке. Но для меня я переключаю свой проект с бульдозера на Орику с целью повышения производительности. Хотя Орика не настолько зрелый, как бульдозер, он не настолько умен и требует, чтобы я проделал большую дополнительную работу, чтобы поддерживать свои индивидуальные конфигурации картографирования.
Если ваш проект не слишком заботится о производительности, я порекомендую вам dozer, он & # 8217; он так прост в использовании и поддерживает множество дополнительных функций. В противном случае, если вы покупаете высокую производительность, я предлагаю вам orika.