Подтвердить что ты не робот

Альтернатива бульдозеру для отображения bean?

Я пытаюсь найти простой способ сопоставить DTO с объектами без кода котельной. Хотя я думал о использовании бульдозера, похоже, требуется много xml-конфигурации. Кто-нибудь видел альтернативу бульдозера, которая использует DSL для настройки отображения bean в чистой Java?

В идеале я надеюсь найти карту bean, которая вдохновлена ​​тем, как Guice делает что-то.

4b9b3361

Ответ 1

Я искал альтернативы.

Здесь - очень хорошее освещение различных вариантов.

Ответ 2

Посмотрите Orika.

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

Ответ 3

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