Sto provando a configurare un progetto MVC Web di Spring 3, utilizzando l'approccio basato su annotazione @Controller.Come posso combinare @Aspect con @Controller in Spring 3?
package my.package
@Controller
@RequestMapping("/admin/*")
public class AdminMultiActionController {
@RequestMapping(value = "admin.htm", method = RequestMethod.GET)
public String showAdminSection() {
return "admin";
}
mio dispatcher-servlet ha le seguenti gestori di controllore:
<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 webapp è in esecuzione bene con i manufatti Maven in dotazione:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
ora volevo aggiungere @AspectJ AOP . Ho avuto le librerie:
<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>
aggiunto ai applicationContext.xml:
<aop:aspectj-autoproxy/>
fatto in modo di creare il fagiolo rilevante nel applicationContext.xml così:
<bean id="securityInterceptor" class="my.package.service.SecurityInterceptor"/>
e ha iniziato rimpolpare il @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
Ora questo è dove ha smesso di funzionare. "fooo" non viene mai stampato.
Potrebbe essere, perché gli oggetti con punto (spelling?) Devono essere bean a gestione di primavera e il mio @Controller in combinazione con DefaultAnnotationHandlerMapping non è percepito come tale?
Qualsiasi aiuto sarebbe apprezzato. Se ho dimenticato di includere qualsiasi informazione, per favore chiedi. Spero che qualcuno possa aiutarmi qui.
Grazie mille!
Il punto 3 è stato il po 'mancante per me, grazie :) – Custard