Un poco de Herramientas de Mapeo de Beans en Java

Seguro que en más de una ocasión os habéis encontrado con la necesidad de mapear propiedades entre Beans en Java.

Tradicionalmente (y digo tradicionalmente porque como veremos ahora hay librerías Java para resolver esto desde tiempos inmemoriales) las opciones han sido 3:

· Mapeo manual: aunque sea la más compleja, la menos mantenible (¿) es sin duda la mejor si el rendimiento es lo que prima en nuestra aplicación

· Commons-BeanUtils o Spring-BeanUtils: ofrecen una funcionalidad básica para mapear propiedades entre Beans. Básicamente con la clase BeanUtils y un conjunto de métodos de utilidad me permite copiar propiedades con el mismo nombre de un Bean a otro

· Dozer: a través de un fichero XML permite elegir el mapeo entre propiedades. Sin duda la más avanzada en cuanto a funcionalidad, ya que permite definir los mapeos, mapeos deep,… por otro lado por su funcionamiento afecta bastante al rendimiento (aunque es una de las áreas de mejora desde siempre!)

Si como decíamos el rendimiento es crítico podéis encontrar numerosas comparativas a este respecto entre estas 3 opciones, algunas por su “solera” sólo sirven como introducción al problema (véase http://www.christianschenk.org/blog/java-bean-mapper-performance-tests/), aunque las hay bastante recientes en las que los conclusiones siguen siendo las mismas.

Además de estas soluciones “clásicas” hay al menos otras 2 opciones interesantes al encontrarse entre medias de Spring-BeanUtils y Dozer, tanto en cuanto a funcionalidad como en cuanto a como afectan al rendimiento.

· Modelmapper: su uso por defecto es muy similar:

Aunque permite hacer mapeos explícitos en el mapeo desde JAva

En su web lo comparan en rendimiento con Dozer obteniendo unos resultados que la sitúan entre 3-4 veces más rápida que esta

· Orika: en estas los mapeos también se hacen en Java, ofrece funcionalidades avanzadas como filtros, tuning en rendimiento, convertidores a medida, extensiones,…

En cuanto al rendimiento en este post del 2013 podéis ver cómo compara con Dozer y mapeo a mano, en el que Orika es en general unas 10 veces más rápido que Dozer y unas 10 veces más lento que el mapeo manual

A %d blogueros les gusta esto: