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

Я пытаюсь найти простой способ привязать 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.

Другие вопросы по тегам