¡Esta es una revisión vieja del documento!


10.3 Spring

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:

Instalacion

Para usar Spring es necesario:

  • Las librerias de Spring
  • Las librerias de Apache Commons Loggin

Libreria de Spring

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:

  • Crear una nueva carpeta llamada lib en la raiz del proyecto donde lo vayamos a utilizar Spring.
  • Descomprime el fichero spring-framework-4.0.6.RELEASE-dist.zip
  • Dentro de la carpeta que acabamos de descomprimir ir a la carpeta 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
  • Añadir los jars de la carpeta lib al proyecto usando rutas relativas.

Libreria de Apache Commons Loggin

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:

  • Descomprime el fichero commons-logging-1.2-bin.zip
  • Dentro de la carpeta ( o subcarpetas) que acabamos de descomprimir copiar los siguientes jars en la carpeta lib de nuestro proyecto:
    • commons-logging-1.2.jar
  • Añadir el jar de la carpeta lib al proyecto usando rutas relativas.

Configurando Spring

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:

web.xml

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:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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>

  • Línea 14: Indicamos que al iniciar la aplicación se ejecute la siguiente clase de Spring org.springframework.web.context.ContextLoaderListener. Esta clase es la que inicializará todo el framework.
  • Línea 18: Le indicamos que en el paquete raiz de Java classpath, se encuentra el fichero de configuración de Spring llamado applicationContext.xml.
  • Línea 23: Definimos un servlet desarrollado por Spring llamado org.springframework.web.servlet.DispatcherServlet. Este servlet será el encargado de procesar todas nuestras peticiones REST.
  • Línea 28: Le indicamos la URI que debe procesar el servlet de Spring y a partir de la cual estarán todas las URI de nuestros servicios REST, que es /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.

dispatcher-servlet.xml

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:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" 
       xmlns:mvc="http://www.springframework.org/schema/mvc" 
       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>

  • Linea 12: Le debemos indicar el paquete Java donde se encuentran los controladores web que usaremos.

Recuerda modificar la línea <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.

applicationContext.xml

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.

Ejemplo

Referencias

1) Siendo x y y la versión a descargar
2) Siendo x la versión a descargar
3) Fully-Qualified Class Name. Es decir el nombre completo de una clase Java incluyendo el paquete al que pertenece.
unidades/10_servidor/03_spring.1409422871.txt.gz · Última modificación: 2014/08/30 20:21 (editor externo)
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0