Альтернатива бульдозеру для картирования бобов?
Я пытаюсь найти простой способ привязать DTO к объектам без стандартного кода. Пока я думал об использовании dozer, мне кажется, что требуется много настроек xml. Кто-нибудь видел альтернативу dozer, которая использует DSL для настройки отображения bean-компонентов в чистой Java?
В идеале я надеюсь найти бобового картографа, который вдохновлен тем, как Guice делает вещи.
3 ответа
Я также искал альтернативы.
Здесь очень хорошо освещены разные варианты.
Посмотри на Орику.
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
<----> DTO.name1
или же DO.nestedObj.id
<--->DTO.nestedId
вам нужно сделать некоторые настройки (через xml или java), чтобы сообщить инструменту отображения, что вы собираетесь это сделать. Я думаю, что для вашего случая использования Dozer, Orika и ModelMapper все в порядке. Но для меня я переключаю свой проект с бульдозера на Орику с целью повышения производительности. Хотя Орика не настолько зрелый, как бульдозер, он не настолько интеллектуален и требует, чтобы я проделал большую дополнительную работу для поддержания своих настроенных картографических конфигураций. Если ваш проект не слишком заботится о производительности, я порекомендую вам dozer, он настолько прост в использовании и поддерживает множество дополнительных функций. В противном случае, если вы покупаете высокую производительность, я предлагаю вам orika.