Pregunta

Estoy tratando de convertir DO a DTO usando Java y busco una herramienta automatizada antes de comenzar a escribir la mía. Solo quería saber si hay alguna herramienta gratuita disponible para el mismo.

¿Fue útil?

Solución

Puedes probar Dozer .

  

Dozer es un Java Bean a Java Bean   mapeador que copia datos recursivamente   de un objeto a otro. Típicamente,   estos Java Beans serán de diferente   tipos complejos.

     

Dozer admite propiedad simple   mapeo, mapeo de tipo complejo,   mapeo bidireccional,   mapeo implícito-explícito, así como   mapeo recursivo. Esto incluye   asignación de atributos de colección que   También necesita mapeo en el elemento   nivel.

Otros consejos

Hay algunas bibliotecas por ahí:

  • Commons-BeanUtils : ConvertUtils - > Métodos de utilidad para convertir valores escalares de cadena en objetos de la clase especificada, matrices de cadena en matrices de la clase especificada.

  • Commons-Lang : ArrayUtils - > Operaciones en matrices, matrices primitivas (como int []) y matrices envolvedoras primitivas (como Integer []).

  • Spring framework : Spring tiene un excelente soporte para PropertyEditors, que también se puede usar para transformar objetos en / de cadenas.

  • Dozer : Dozer es un potente, pero sencillo mapeador de Java Bean a Java Bean que copia recursivamente datos de un objeto a otro. Por lo general, estos Java Beans serán de diferentes tipos complejos.

  • ModelMapper : ModelMapper es un marco de mapeo de objetos inteligente que asigna automáticamente objetos entre sí. Utiliza un enfoque basado en convenciones para mapear objetos al tiempo que proporciona una API segura de refactorización simple para manejar casos de uso específicos.

  • MapStruct : MapStruct es un generador de código de tiempo de compilación para mapeos de frijoles, lo que resulta en un rápido (sin uso) de reflexión o similar), código de mapeo sin dependencia y seguro de tipo en tiempo de ejecución.

  • Orika : Orika utiliza la generación de código de bytes para crear mapeadores rápidos con una sobrecarga mínima.

  • Selma : generador de código en tiempo de compilación para mapeos

  • JMapper : generación de mapeadores de frijoles usando Anotación, XML o API

  • Smooks : Smooks JavaBean Cartridge le permite crear y poblar objetos Java desde su datos del mensaje (es decir, vincular datos a) (sugerido por superfilin en los comentarios). (ya no está activo desarrollo)

  • Commons-Convert : Commons-Convert tiene como objetivo proporcionar un biblioteca única dedicada a la tarea de convertir un objeto de un tipo a otro. La primera etapa se centrará en las conversiones de Objeto a Cadena y de Cadena a Objeto. (parece muerto, última actualización 2010)

  • Transmorph : Transmorph es una biblioteca gratuita de Java utilizada para convertir un objeto Java de un tipo en un objeto de otro tipo (con otra firma, posiblemente parametrizada). (parece muerto, última actualización 2013)

  • EZMorph : EZMorph es una biblioteca simple de Java para transformar un Objeto en otro Objeto. Admite transformaciones para primitivas y objetos, para matrices multidimensionales y transformaciones con DynaBeans (parece muerto, última actualización 2008)

  • Morph : Morph es un marco de Java que facilita la interoperabilidad interna de una aplicación . A medida que la información fluye a través de una aplicación, sufre múltiples transformaciones. Morph proporciona una forma estándar de implementar estas transformaciones. (parece muerto, última actualización 2008)

  • Lorentz : Lorentz es un obj genérico

Otra es Orika - https://github.com/orika-mapper/orika

  

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

     

Orika se enfoca en automatizar tanto como sea posible, al tiempo que proporciona personalización a través de la configuración y extensión donde sea necesario.

     

Orika permite al desarrollador:

     
      
  • Mapear objetos complejos y profundamente estructurados
  •   
  • " Acoplar " o " Expandir " objetos asignando propiedades anidadas a propiedades de nivel superior y viceversa
  •   
  • Cree mapeadores sobre la marcha y aplique personalizaciones para controlar parte o la totalidad del mapeo
  •   
  • Cree convertidores para un control completo sobre la asignación de un conjunto específico de objetos en cualquier parte del gráfico de objetos, por tipo o incluso por nombre de propiedad específico
  •   
  • Manejar proxies u objetos mejorados (como los de Hibernate o los diversos marcos simulados)
  •   
  • Aplicar mapeo bidireccional con una configuración
  •   
  • Asignar a instancias de una clase concreta apropiada para una clase o interfaz abstracta de destino
  •   
  • Manejar asignaciones inversas
  •   
  • Maneje convenciones complejas más allá de las especificaciones JavaBean.
  •   
     

Orika utiliza la generación de código de bytes para crear mapeadores rápidos con una sobrecarga mínima.

ModelMapper es otra biblioteca que vale la pena consultar. El diseño de ModelMapper es diferente de otras bibliotecas en que:

  • Asigna automáticamente modelos de objetos al hacer coincidir de forma inteligente las propiedades de origen y destino
  • Proporciona una API de refactorización de mapeo seguro que usa código real para mapear campos y métodos en lugar de usar cadenas
  • Utiliza una configuración basada en convenciones para un manejo simple de escenarios personalizados

Consulte el sitio de ModelMapper para obtener más información:

http://modelmapper.org

Usa los beanutils comunes de Apache:

  

static void copyProperties (Destino del objeto, origen del objeto)   -Copia los valores de propiedad del bean de origen al bean de destino para todos   casos donde los nombres de propiedad son   lo mismo.

http://commons.apache.org/proper/commons-beanutils/

Hay un motor / marco de mapeo Java más Nomin: http://nomin.sourceforge.net .

Te sugiero que pruebes JMapper Framework .

Es un mapeador de Java Bean a Java Bean, le permite realizar el paso de datos dinámicamente con anotaciones y / o XML.

Con JMapper puedes:

  • Crear y enriquecer objetos de destino
  • Aplicar una lógica específica al mapeo
  • Administre automáticamente el archivo XML
  • Implemente las relaciones 1 a N y N a 1
  • Implementar conversiones explícitas
  • Aplicar configuraciones heredadas

Estoy feliz de agregar Moo como una opción, aunque claramente estoy predispuesto hacia eso: http://geoffreywiseman.github.com/Moo/

Es muy fácil de usar para casos simples, razonablemente capaz para casos más complejos, aunque todavía hay algunas áreas donde puedo imaginar mejorarlo para complejidades aún más.

También puede probar el marco de mapeo basado en Dozer, pero con la declaración de mapeo de Excel. Tienen algunas herramientas y características geniales adicionales. Verifique en http://openl-tablets.sf.net/mapper

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top