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
Bueno, 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.
También te puede interesar:
- Web Services – Integrar los clientes en Spring Ya sabemos cómo publicar un servicio web y cómo construir un cliente que consuma dicho servicio partiendo del fichero descriptor del contrato. Ahora integraremos el...
- [Struts] – Manejo de objetos de negocio en los ActionForm La mayoría de los formularios de las aplicaciones web recogen o muestran los datos de los objetos de negocio de nuestra aplicación. Debido a esto,...
- Java Dependency Injection: Guice or Spring? Depending on your needs. Comparing both of them is like comparing a MP3 mobile player to an MP3 radio car. Spring provides you more and...
- Spring, Struts 1.3.8, JDBC y MySQL Vaya combinación, ya se va complicando el tema. Ahora que ya tenemos un servidor de base de datos MySQL disponible, queremos utilizarlo en nuestros proyectos...
- [iBATIS] – Implementación Capa Abstracción El framework iBATIS DAO es la parte de iBATIS que se encarga de la Capa de Abstracción situada entre la Capa de Negocio y la...































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 [...]