¡Esta es una revisión vieja del documento!
En este tema vamos a ver como poner en marcha una aplicación web que haga uso del framework Spring. Spring es un framework que al día de hoy es muy amplio y dispone de muchas funcionalidades. Nosotros en este curso solo vamos a ver la funcionalidad de:
Para usar Spring es necesario:
Descargar un fichero zip llamado spring-framework-4.x.y.RELEASE-dist.zip
1) de la siguiente página:
Los ejemplos de este curso han sido hechos con la versión 4.0.6 y el enlace directo es:
Una vez descargado hay que:
lib
en la raiz del proyecto donde lo vayamos a utilizar Spring.spring-framework-4.0.6.RELEASE-dist.zip
libs
y copiar los siguientes jars en la nueva carpeta lib
de nuestro proyecto:spring-aop-4.0.6.RELEASE.jar
spring-beans-4.0.6.RELEASE.jar
spring-context-4.0.6.RELEASE.jar
spring-context-support-4.0.6.RELEASE.jar
spring-core-4.0.6.RELEASE.jar
spring-expression-4.0.6.RELEASE.jar
spring-web-4.0.6.RELEASE.jar
spring-webmvc-4.0.6.RELEASE.jar
lib
al proyecto usando rutas relativas.Spring necesita de la librería Apache Commons Loggin, así que deberemos descargala y añadir también ciertos JARs a nuestros proyectos.
Descargar el fichero zip llamado commons-logging-1.x-bin.zip
2) de la siguiente página:
Los ejemplos de este curso han sido hechos con la versión 1.2 y el enlace directo es:
Una vez descargado hay que:
commons-logging-1.2-bin.zip
lib
de nuestro proyecto:commons-logging-1.2.jar
lib
al proyecto usando rutas relativas.Una vez tenemos los jars que necesitamos para que funcione la aplicación en necesario configurar nuestra aplicación web para que funcione Spring. Para ello es necesario crear y configurar 3 ficheros:
El fichero web.xml
debe estar en la carpeta WEB-INF
en las carpetas web. Es un fichero estándar de aplicaciones web en Java
Su contenido es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version = "3.1" > < session-config > < session-timeout > 30 </ session-timeout > </ session-config > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > < context-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:applicationContext.xml</ param-value > </ context-param > < servlet > < servlet-name >dispatcher</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class > < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >dispatcher</ servlet-name > < url-pattern >/api/*</ url-pattern > </ servlet-mapping > </ web-app > |
org.springframework.web.context.ContextLoaderListener
. Esta clase es la que inicializará todo el framework.classpath
, se encuentra el fichero de configuración de Spring llamado applicationContext.xml
.org.springframework.web.servlet.DispatcherServlet
. Este servlet será el encargado de procesar todas nuestras peticiones REST./api/*
Este fichero para cualquier proyecto lo podemos siempre pegar tal y como está ya que siguiendo nuestra arquitectura, la URI de nuestros servicios RST siempre empezará por /api
y el fichero de configuración de Spring siempre lo llamamos applicationContext.xml
y estará en el paquete raíz de las clases Java.
El fichero dispatcher-servlet.xml
debe estar en la carpeta WEB-INF en las carpetas web. El fichero dispatcher-servlet.xml
es el fichero de configuración de la parte web de Spring, por lo tanto solo es necesario si estamos haciendo una aplicación web.
Su contenido es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> < context:component-scan base-package = "NOMBRE_DEL_PAQUETE_DE_LOS_CONTROLADORES_DE_SPRING" /> </ beans > |
<context:component-scan base-package=“NOMBRE_DEL_PAQUETE_DE_LOS_CONTROLADORES_DE_SPRING” />
para poner el nombre del paquete Java donde se encuentran los controladores web de tu aplicación.
El fichero applicationContext.xml
se encuentra en la carpeta raíz de las clases Java. Su nombre y su ubicación la hemos definido en el fichero web.xml
aunque lo normal es que en todos los proyectos se llame así y esté en esa carpeta.
Su utilidad es configurar Spring en toda la parte que no tiene nada que ver con la web. Lo normal es poner aquí las clases que queremos que se puedan inyectar desde Spring. Lo podemos ver como nuestro configurador de inyección de dependencias. Aqui podremos las FQCN 3) de las clases que queremos que se puedan inyectar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd "> < context:annotation-config /> < bean class = "FQCN_DE_UNA_CLASE_JAVA_QUE_QUEREMOS_PODER_INYECTAR" /> </ beans > |
@Autowired
class
la FQCN 4) de la clase Java. Esta línea se puede repetir tantas veces como queramos para cada una de las clases que queramos que se puedan inyectar. O borrarla si no hay ninguna.x
la versión a descargar