J'essaye d'installer un projet Spring 3 Web MVC, en utilisant l'approche @Controller, basée sur des annotations.Comment puis-je combiner @Aspect avec @Controller dans Spring 3?
package my.package
@Controller
@RequestMapping("/admin/*")
public class AdminMultiActionController {
@RequestMapping(value = "admin.htm", method = RequestMethod.GET)
public String showAdminSection() {
return "admin";
}
Mon répartiteur-servlet a les gestionnaires de contrôleur suivants:
<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" />
Le webapp fonctionne bien avec les artefacts Maven fournis:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
Maintenant, je voulais ajouter @AspectJ AOP . Je suis les libs:
<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>
ajouté à mon applicationContext.xml:
<aop:aspectj-autoproxy/>
fait en sorte de créer le haricot pertinent dans le applicationContext.xml ainsi:
<bean id="securityInterceptor" class="my.package.service.SecurityInterceptor"/>
et a commencé étaler le @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
Maintenant, c'est là où il a cessé de fonctionner. "fooo" n'est jamais imprimé. Cela peut-il être dû au fait que les objets pointés (orthographiés?) Doivent être gérés par des ressorts et que mon @Controller associé au DefaultAnnotationHandlerMapping n'est pas perçu comme tel.?
Toute aide serait appréciée. Si j'ai oublié d'inclure des informations, s'il vous plaît demander. J'espère que quelqu'un peut m'aider ici.
Merci beaucoup!
point 3 est le bit manquant pour moi, merci :) – Custard