Arquitectura Simple con Java Parte 2 – NEGOCIO y REST
[youtube https://www.youtube.com/watch?v=4-HAVW4RWqM&w=560&h=315&autoplay=1]
Esta es la segunda entrega sobre el proyecto que creamos sobre una arquitectura simple de java.
La primera parte aquí.
[caption id="attachment_1110" align="alignnone" width="801"] arquitectura base de un software[/caption]
La primera parte de este vídeo hablamos de unas mejoras que hice en la capa de DAO, agregando EhCache, EhCache es un cache OpenSource que la mayoría de los proyectos optan por usar debido a su fácilidad de uso y configuración ya que esta basado en estándares, es escalable, robusto y basado en java.
Para usar ehcache es muy fácil, con agregar un archivo xml en el resources llamado ehcache.xml
Pero recuerden que estamos usando Spring, por lo que debemos agregarlo al contexto. En este proyecto existen "dos contextos" por decirlo de una manera, uno que será el que usaremos al generar el war y desplegar, otro para pruebas (test)
El contexto general y productivo está en la siguiente ruta:
El contexto de pruebas de la capa de DAO está en la siguientes rutas:
Y ambos deben tener lo siguiente si queremos que funcione el cache.
Y con eso tenemos funcionando el cache, ahora la parte de transaccionalidad la hice con spring, y es muy similar a la configuración de ehcache, o sea tenemos que agregarla al contexto de spring para que funcione.
Esto permite que al usar la notación @Transactional pueda decirle que métodos requiero que hagan una transaccionalidad que manejara spring, puede configurarse con mayor detalle sin embargo aquí solo uso el por default y una donde explícitamente le digo que sea de solo lectura, debido a la naturaleza del método que es un simple listado.
También incursionamos en pruebas(test) unitarias con JUnit y Mockito para probar nuestros DAOs, esta parte considero que no requiere explicación escrita, dado que en el vídeo viene bastante detallado.
Para los end-points REST, usamos SparkJava un framework que me gusta bastante, porque es muy simple de utilizar y crear interfaces rest en tiempo muy cortos.
Para la transformación de la información que nos llega del request a nuestra capa de REST use GSON, una librería de google que convierte estos JSON a objetos de Java que son los que se requiere para su manipulación dentro del negocio.
Para probar los end-points use una extensión de chrome que se llama Restlet Client - DHC, existe tanto para firefox como para chrome.
Pueden descargar el proyecto en github en el tag parte-2 o aquí directamente.
Esta es la segunda entrega sobre el proyecto que creamos sobre una arquitectura simple de java.
La primera parte aquí.
[caption id="attachment_1110" align="alignnone" width="801"] arquitectura base de un software[/caption]
La primera parte de este vídeo hablamos de unas mejoras que hice en la capa de DAO, agregando EhCache, EhCache es un cache OpenSource que la mayoría de los proyectos optan por usar debido a su fácilidad de uso y configuración ya que esta basado en estándares, es escalable, robusto y basado en java.
Recuerden que dentro del pom.xml de Maven podrán ver todas las librerías y versiones usadas.
Para usar ehcache es muy fácil, con agregar un archivo xml en el resources llamado ehcache.xml
Pero recuerden que estamos usando Spring, por lo que debemos agregarlo al contexto. En este proyecto existen "dos contextos" por decirlo de una manera, uno que será el que usaremos al generar el war y desplegar, otro para pruebas (test)
El contexto general y productivo está en la siguiente ruta:
arquitectura-java-simple/UsuarioRest/src/main/resources/app-config.xml
El contexto de pruebas de la capa de DAO está en la siguientes rutas:
arquitectura-java-simple/UsuarioDaos/src/test/resources/test-context.xml
arquitectura-java-simple/UsuarioDaos/src/test/resources/test-integracion-context.xml <<< Este lo usamos para levantar un contexto de pruebas que realmente conecta a la base de datos.
Y ambos deben tener lo siguiente si queremos que funcione el cache.
Y con eso tenemos funcionando el cache, ahora la parte de transaccionalidad la hice con spring, y es muy similar a la configuración de ehcache, o sea tenemos que agregarla al contexto de spring para que funcione.
Esto permite que al usar la notación @Transactional pueda decirle que métodos requiero que hagan una transaccionalidad que manejara spring, puede configurarse con mayor detalle sin embargo aquí solo uso el por default y una donde explícitamente le digo que sea de solo lectura, debido a la naturaleza del método que es un simple listado.
También incursionamos en pruebas(test) unitarias con JUnit y Mockito para probar nuestros DAOs, esta parte considero que no requiere explicación escrita, dado que en el vídeo viene bastante detallado.
Para los end-points REST, usamos SparkJava un framework que me gusta bastante, porque es muy simple de utilizar y crear interfaces rest en tiempo muy cortos.
Para la transformación de la información que nos llega del request a nuestra capa de REST use GSON, una librería de google que convierte estos JSON a objetos de Java que son los que se requiere para su manipulación dentro del negocio.
Para probar los end-points use una extensión de chrome que se llama Restlet Client - DHC, existe tanto para firefox como para chrome.
Pueden descargar el proyecto en github en el tag parte-2 o aquí directamente.
Nota: Recuerden que al crear el WAR deben de crear el JDNI dentro del servidor de aplicaciones que usen para desplegar y debe llevar el nombre que le hayan dado dentro del archivo de propiedades.
Comentarios