Estoy intentando configurar un proyecto Spring 3 Web MVC, utilizando el @Controller, enfoque basado en anotaciones.¿Cómo puedo combinar @Aspect con @Controller en Spring 3?
package my.package
@Controller
@RequestMapping("/admin/*")
public class AdminMultiActionController {
@RequestMapping(value = "admin.htm", method = RequestMethod.GET)
public String showAdminSection() {
return "admin";
}
Mi despachador-servlet tiene las siguientes controladores: Controlador
<context:component-scan base-package="my.package" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
La aplicación web está funcionando bien con los artefactos Maven suministrados:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
Ahora quería añadir @AspectJ AOP . Tengo las librerías:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
añadido a mis applicationContext.xml:
<aop:aspectj-autoproxy/>
aseguramos de crear el bean principal en el applicationContext.xml así:
<bean id="securityInterceptor" class="my.package.service.SecurityInterceptor"/>
Y empecé desarrollando el @Aspect:
package my.package.service
@Aspect
public class SecurityInterceptor {
@Pointcut("execution(* showAdminSection(..))")// the pointcut expression
private void foo() {
System.out.println("fooo");
}// the pointcut signature
Ahora aquí es donde dejó de funcionar. "fooo" nunca se imprime.
Podría ser, porque los objetos puntiagudos (¿ortografía?) Deben ser beans gestionados por resorte y mi @Controller en combinación con DefaultAnnotationHandlerMapping no se percibe como tal.
Cualquier ayuda sería apreciada. Si olvidé incluir información, por favor pregunte. Espero que alguien pueda ayudarme aquí.
¡Muchas gracias!
El punto 3 fue la falta poco para mí, gracias :) – Custard