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 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

Captura de pantalla 2018-06-22 a la(s) 11.07.33 a. m.

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.

Captura de pantalla 2018-06-22 a la(s) 11.21.11 a. m.

 

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.

Captura de pantalla 2018-06-22 a la(s) 11.22.45 a. m.

Captura de pantalla 2018-06-22 a la(s) 11.22.51 a. m.

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.

Captura de pantalla 2018-06-22 a la(s) 11.24.41 a. m.

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.


Captura de pantalla 2018-06-22 a la(s) 12.02.21 p. m.

Captura de pantalla 2018-06-22 a la(s) 12.02.38 p. m.

 

 

Comentarios

Entradas populares