Spring
 

Ejercicios de AOP en Spring

Continuamos en esta sesión con la aplicación AmigosSpring, añadiéndole ahora aspectos para poder realizar diversas tareas

Aviso
Para poder realizar los ejercicios de las dos últimas sesiones hay que descomprimir las plantillas de la sesión sobre el proyecto que ahora tenéis. Es necesario hacer además las siguientes modificaciones puntuales "a mano".

Añadir el siguiente bean al mvc.xml para gestionar el proceso de registro:


	<bean name="/registroUsuario.mvc" class="es.ua.jtech.amigosSpring.mvc.RegistroUsuarioController">
		<property name="fachada">
			<ref  bean="fachada"/>
		</property>
		<property name="validator">
			<bean class="es.ua.jtech.amigosSpring.mvc.NuevoUsuarioValidator"/>
		</property>	
	</bean>

Añadir al mensajes.properties los siguientes mensajes de error:

campoVacio = el campo no puede estar vacío
passwdDif = los passwords deben coincidir

Instalación del plugin de AspectJ

El plugin de eclipse para AspectJ nos ayudará a chequear la sintaxis de los puntos de corte y de los aspectos. Podemos instalarlo de dos formas:

  • A través de la red: con la opción de Eclipse Help > Software updates > Find and install. Elegimos "Search new features to install" y como "New remote site" ponemos http://download.eclipse.org/tools/ajdt/32/update
  • Directamente descomprimiendo este zip en la carpeta de Eclipse. Para asegurarse de que instala los nuevos plugins, arrancar el eclipse desde una terminal tecleando eclipse -clean, NO haciendo doble clic sobre él.

Registro de eventos con AOP

El administrador del sistema quiere recibir un mail cuando se produzcan ciertos eventos:

  • alguna excepción de tipo SinPermisoException en alguna clase de la capa de negocio o de datos. El mail debe contener el mensaje de error de la excepción generada.
  • Registro de un nuevo usuario. Mensaje conteniendo el login, nombre y edad

Evidentemente no es necesario que se mande un mail de verdad, ya que todavía no hemos visto el API en el curso. Bastará con que se muestre un mensaje en pantalla indicando "mail generado con texto:...."

Cache con AOP (*)

Se ha introducido en el sitio web una funcionalidad en la cual aparecen viajes de oferta en las páginas del sitio. Dicha funcionalidad la gestionan las clases OfertasDAO y GestorOfertas a nivel de datos y negocio, respectivamente. Las ofertas no suelen cambiar en tiempo real, sino un par de veces a la semana, por lo que son buen candidato para guardar en cache y evitar solicitudes innecesarias a la base de datos. Añadir AOP al método getOfertasActuales() para que si las que hay tienen una antigüedad de menos de 30 minutos, no se tomen de la base de datos, sino de una cache.