Hola mundo con las tecnologías de SpringMVC, Hibernate, un ejemplo de aspectos y test con JUnit

Tutorial holamundo con Spring MVC, Hibernate y aspectos.

0. Índice de contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:
  • Hardware: Portátil Mac Book Pro 17″ (2,93 Ghz Intel Core 2 Duo, 8 GB DDR3)
  • Sistema Operativo: Mac OS X Mavericks 10.9
  • Spring Framework 3.0
  • IDE: Eclipse Kepler + plugin m2e

2. Introducción.

En este tutorial vamos a hacer un holamundo para probar las distintas tecnologías como son Spring MVC, maven para gestionar las dependencias fácilmente, Hibernate para persistencia, crearemos un aspecto a modo de holamundo para ver cómo funciona y por último crearemos un test de prueba con JUnit. Para el ejemplo, vamos a crear una base de datos en la que vamos a tener unos libros y los vamos a mostrar por pantalla, y teniendo una opción para introducir nuevos libros.

3. Preparación del entorno en eclipse con Maven.

EL primer paso para empezar el tutorial, es crear un nuevo proyecto en eclipse. Voy a suponer que ya está instalado todo lo necesario como maven y el plugin de Spring. En este tutorial podemos ver cómo crear el proyecto para SpringMVC. El pom de nuestro proyecto maven va a ser el siguiente, para que se descargen las dependencias necesarias: Y al final del tutorial el proyecto tiene que tener una estructura como la siguiente: Y otra cosa a tener en cuenta es que la aplicación correrá bajo un tomcat, que se sale del tutorial explicar cómo instalarlo en eclipse, aunque no tiene ninguna complicación.

4. Configuración Spring MVC, Hibernate y Aspectos.

Para empezar nos creamos en la ruta: /webapp/WEB-INF/ un archivo xml que en mi caso le he llamado servlet-context.xml que será donde estén todas las beans y configuraciones de hibernate y aspectos. Al ser un pequeño ejemplo no se ha modularizado que es lo conveniente. Voy a comentar en el mismo código las cosas más significativas: Ahora vamos a explicar de la misma manera el fichero web.xml, que se encuentra en la misma ruta que el anterior y es en el que configuraremos los servlets. Con esto tenemos la configuración mínima para funcionar, nos queda crear nuestras clases, el script de la base de datos, el aspecto y la vista que lo haremos en la siguiente sección.

5. Creando la lógica de la aplicación.

Vamos a empezar con las clases de persistencia, primeramente creamos el POJO Libro con las anotaciones de Hibernate. Ahora vamos a definir el dao, que será muy sencillo, como toda la aplicación. Ya que estamos con la parte de persistencia, ahora dejo el script de creación de la base de datos y algún dato de ejemplo. No voy a explicar nada del script ya que es básico. Ahora seguimos con la parte de vista. Primero describiré el service, que será llamado por el controller de la vista y por último describiré la vista, para dejar para el final el aspecto. En el servicio vamos a implementarlo con una interfaz, que es como se debe hacer todo, pero al ser un ejemplo sencillo solo contaremos con esta interfaz, en vuestras manos dejo implementar correctamente los demás métodos. Y ahora la implementación del servicio, que implementará la interfaz que acabamos de crear. El controlador será el siguiente: Una vez explicado el controlador, vamos a hacer una vista muy simple para mostrar la información. Y ya sólo nos queda definir el aspecto que será una clase java en la cual simplemente se llama a imprimir en la salida estandar cada vez que se ejecuta un método que se llama list(). Con esto hemos terminado de definir La lógica de nuestro programa. En resumen, tenemos una base de datos con varios libros, gestionada por hibernate. Spring MVC nos muestra la vista y controla las variables que aparecen en la vista y que la rellenan. Y tenemos un aspecto que se ejecuta cada vez que el método list() es llamado. En la siguiente parte veremos cómo hacer un pequeño ejemplo de test, que no probaremos todo, sólo la base de datos como ejemplo.

6. Ejemplo test para el dao.

Ahora vamos a realizar tres simples test, en el primero comprobamos que en la base de datos existen 3 libros, los cuales introducimos con el script libros.sql. En el segundo probamos que se realiza el insert correctamente. Y en el último comprobamos que se borran libros correctamente. Ahora vamos con el XML que hemos reducido para levantar únicamente lo que necesitamos para los test. Como podemos ver hemos quitado la parte de MVC y aspectos ya que no se van a probar en los Test. Sólo queda decir que para ejecutarlo, por ejemplo, se pulsa en el botón derecho sobre la clase y la ruta : RunAs –> JUnit Test, y vemos que los tres test pasan correctamente. En la siguiente imagen lo muestro.

7. Conclusiones.

El objetivo del tutorial es mostrar un pequeño ejemplo de todo el sistema mvc, con los spring e hibernate como base, y añadiendo aspectos y tests, para que sea un punto de partida para hacer cosas más interesantes. Dejo el código del proyecto aquí para que lo podáis descargar. Para cualquier duda o aclaración, en los comentarios. Un saludo.