example dozerbeanmapper bean guice dto dozer dto-mapping

guice - dozerbeanmapper - Alternativa a la topadora para el mapeo de frijol?



dozer spring (3)

Desde mi punto de vista, la configuración o el código Java para asignar algunas propiedades especiales siempre son necesarios.

Aquí quiero tomar un DO y DTO por ejemplo

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 }

Para Dozer u Orika, ambos pueden hacer coincidir automáticamente las propiedades de id y name entre DO y DTO sin ninguna configuración o código java porque tienen los mismos tipos y nombres de propiedad. Pero si desea DO.doName1 <----> DTO.name1 o DO.nestedObj.id <---> DTO.nestedId necesita hacer alguna configuración (mediante xml o java) para indicar a la herramienta de mapeo que está intención de hacer eso. Creo que para tu caso de uso, Dozer, Orika y ModelMapper están bien. Pero para mí, estoy cambiando mi proyecto de Dozer a Orika por motivos de rendimiento. Aunque Orika no es tan madura como dormilón, no es tan inteligente y me obliga a hacer un trabajo adicional para mantener mis configuraciones de mapeo personalizadas. Si su proyecto no se preocupa demasiado por el rendimiento, le recomendaré a Dozer, es muy fácil de usar y ofrece muchas funciones avanzadas. De lo contrario, si está comprando un alto rendimiento, le sugiero orika.

Estoy tratando de encontrar una manera fácil de asignar DTO a entidades sin el código de placa de caldera. Mientras estaba pensando en usar Dozer, parece que se requiere una gran cantidad de configuración XML. ¿Alguien ha visto una alternativa Dozer que use un DSL para configurar la asignación de beans en Java puro?

Lo ideal es encontrar un mapeador de frijoles que esté inspirado en la forma en que Guice hace las cosas.


Mira a Orika .

Orika es un marco de mapeo Java Bean que copia recursivamente (entre otras capacidades) datos de un objeto a otro. Puede ser muy útil al desarrollar aplicaciones de múltiples capas.


Yo también estaba buscando alternativas.

Here hay una muy buena cobertura de diferentes opciones.