Primeros pasos con Spring #1, creación del proyecto

Spring es uno de los frameworks en el mundo empresarial de Java mas utilizado, siempre en competencia con el estandar (Java EE), para comparativas y de mas recomiendo leer este articulo.

Aquí veremos como construir una API REST utilizando Spring (4.2.3.RELEASE) y sus módulos como pegamento de integración para nuestras dependencias, Hibernate(4.3.11) con su implementación de JPA(2.1), Maven para manejar nuestras dependencias, H2 (1.4.190) como motor de base de datos y Jackson(2.4.3) para convertir nuestros POJOS de Java a formato JSON.

Para este tutorial necesitaremos tener instalado el siguiente software :

Lo primero que necesitamos hacer es crear un proyecto de Maven en Eclipse para eso necesitamos ir a File -> New -> Other y escribir maven y seleccionar Maven Project

1

2

Después se nos abrirá un wizard en el cual marcaremos el checkbox de Create simple project (skip archetype selection)

3

Damos al botón Next y llenamos los datos del proyecto, ponemos el grupo al que pertenece, el nombre que tendrá como identificador en Maven, el tipo de empaquetado que en nuestro caso sera WAR (Web application ARchive), una descripción, nuevamente el nombre y presionamos Finish.

4

Se nos creara un proyecto de Maven en Eclipse con esta estructura

5

Es necesario comenzar a trabajar con nuestro pom.xml, que se encuentra en la raíz de nuestro proyecto, en el declararemos la versión de Java que utilizaremos, nuestras dependencias de Spring, Hibernate, Jackson y H2.

Al abrirlo se mostrara así

6

Debemos dar click a la pestaña donde dice pom.xml para ver el código fuente de nuestro fichero que se debería mostrar así

7

Para facilitar la lectura y el mantenimiento de este archivo declararemos, por así decirlo, en variables las versiones de Java , de los módulos de Spring, de Hibernate y Jackson, de esta forma

8

Ahora agregaremos todos los módulos de Spring que necesitaremos, no los nombrare todos para poder ser breve pero pueden verlos en el siguiente fragmento de código

Debería verse algo así

9

Después agregaremos Hibernate , Jackson y la base de datos embebida H2 a nuestro pom.xml que nos debería quedar así

Una imagen de mi proyecto

10

Ahora especificaremos que nuestro proyecto será compilado con Java 6

Debería verse así

11

El siguiente paso será generar nuestro archivo web.xml, mas información aquí, donde se declararan los servlets de inicialización de Spring así como la ruta a nuestro archivo index.html, entre otras cosas, para esto daremos click derecho en nuestro proyecto y seleccionaremos Java EE Tools –> Generate Deployment Descriptor Stub.

12

El archivo se debería generar exitosamente en la ruta /webapp/WEB-INF/web.xml y se vería de la siguiente forma

13

Bien, ahora que nuestro IDE nos genero el archivo debemos registrar los servlets principales de Spring y decir que las peticiones a /api/* se envien al servlet MVC de Spring, ademas de declarar la ruta del archivo de configuración de Spring el cual tendrá el nombre de mvc-dispatcher-servlet.xml (aun no lo creamos), también eliminamos direcciones de bienvenida no necesarios, solo dejamos el index.html (no more jsp :( ), aquí el código

14

Ahora crearemos el archivo mvc-dispatcher-servlet.xml, este archivo es uno de los mas importantes de Spring, pues aquí configuraremos nuestra conexión a la base de datos, las anotaciones para trabajar con inyección de dependencias y los módulos que añadiremos posteriormente, para ello debemos agregar las urls a los validadores de los esquemas XML de Spring, para hacer esto desplegaremos la carpeta WEB-INF y crearemos nuestro archivo XML de la siguiente forma, click derecho en nuestra carpeta , New -> Other

15

Al abrirse el wizard escribiremos XML

16

Seleccionamos XML File , damos en Next y escribimos el nombre de nuestro archivo mvc-dispatcher-servlet.xml, damos click en Finish

17

Nuestro archivo es un XML vacío que debería verse así

18

Pero debemos agregar los xmlns de Spring básicos y debería quedarnos así

Una captura de mi proyecto

19

Llegando a este punto ya podríamos ejecutar nuestra aplicación aunque actualmente , no hace absolutamente nada, solo nos hemos enfocado en la creación de el proyecto y de nuestros archivos de configuración básica que nos ayudaran a ahorrar bastante trabajo en un futuro.

Una captura de nuestra aplicación corriendo en Apache Tomcat

20

También adjunto el proyecto obtenido directamente del workspace de Eclipse , lo descargan aquí

Puedes encontrar el repositorio del proyecto aquí