La verdadera sabiduría reside en conocer la propia ignorancia.
Sócrates

Spring - MVC : Capa de negocio

Avancemos un poco más en nuestros conocimientos básicos de Spring - MVC. Vamos a extraer el negocio de nuestras clases controlers y vamos a llevarlos a nuevas clases de la capa de negocio.

holamundoBO

Proyecto holamundoBOBueno, repasemos los primeros pasos de Spring - MVC. Si necesitas ayuda mira la chuleta de la entrada anterior, sobre el proyecto holamundo con Spring - MVC.

Creemos un nuevo proyecto web dinámico, holamundoBO. Importamos las librerías necesarias, configuramos el web.xml para que utilice Spring al recibir extensiones ".lycka". Creemos nuestra clase controller, es.lycka.holamundoBO.control.HolaMundoController y la implementamos como hicimos en el tutorial anterior. Nos resta configurar el fichero xml de configuración de la servlet de spring, holamundoBO-servlet.xml para que mapee el path /holamundo.lycka al controlador que acabamos de crear.

Podemos utilizar las mismas jsp's que en el proyecto de holamundo, index.jsp y jsp/holamundo.jsp.

Desplegamos la aplicación en el servidor y comprobamos que se ven correctamente la ruta /holamundo.lycka.

Extraer el negocio

En nuestro caso el negocio es muy simple, es únicamente una sentencia. Habitualmente sabemos que no es así.

(new Date()).toString()

Para ello crearemos un interfaz, es.lycka.holamundoBO.negocio.HolaMundoBO, y lo implementaremos en la clase es.lycka.holamundo.negocio.impl.HolaMundoBOImpl.

package es.lycka.holamundoBO.negocio;

public interface HolaMundoBO {

      public String getHoraActual ();

} 

y

package es.lycka.holamundoBO.negocio.impl;

import java.util.Date;

import es.lycka.holamundo.negocio.HolaMundoBO;

public class HolaMundoBOImpl implements HolaMundoBO {

      public String getHoraActual () {

            return (new Date()).toString();

      }

}

Configurar Spring

Vale, ahora vamos a sacar uso de la Inyección de Dependencias de Spring.

Creamos una variable privada en el controller del tipo HolaMundoBO, y un método set para esta variable. Utilizamos el método de negocio de esta variable, getHoraActual ().

private HolaMundoBO holaMundoBO;

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      String ahora = holaMundoBO.getHoraActual();

      logger.info("Se dirige a la vista holamundo con ahora = " + ahora);

      return new ModelAndView("holamundo", "ahora", ahora);

}

public void setHolaMundoBO(HolaMundoBO holaMundoBO) {

      this.holaMundoBO = holaMundoBO;

}

Ahora declaramos el bean en el archivo de configuración de Spring, holamundoBO-servlet.xml.

<bean id="HolaMundoBO" class="es.lycka.holamundoBO.negocio.impl.HolaMundoBOImpl" />

Y ahora le inyectamos el bean de negocio al controlador… cómo ? declaramos una nueva propiedad en el bean del controller para inyectarle este método de negocio.

<bean name="/holamundo.lycka" class="es.lycka.holamundoBO.control.HolaMundoController" >

      <property name="holaMundoBO"       ref="HolaMundoBO" />

</bean> 

Probamos el códgio, et voilá, funciona ! Ya tenemos nuestra capa de negocio en un proyecto de Spring.

1 Comentario hasta el momento »

  1. Lycka Bonita » Spring AOP : Primeros pasos dijo

    7 de July del 2008 a las 7:04 am

    […] del anterior proyecto, holamundoBO. Creamos un nuevo proyecto web dinámico, holamundoAOP, e introducimos las librerías […]

Comentarios RSS · TrackBack URI

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario: