关于RequestMapping的AOP建议

时间:2011-11-15 14:44:26

标签: spring spring-mvc spring-aop

如何围绕使用@RequestMapping注释的方法创建一个切入点?

我定义了一个Pointcut,我想进一步限制:

@Pointcut("execution(public * company.controllers.AbstractController+.*(..))")
public void methodPointcut() { }

是否可以进一步将其限制为仅使用@RequestMapping注释的方法?

我尝试添加&& @annotation到Pointcut的末尾,但这不是一个格式良好的Pointcut。

2 个答案:

答案 0 :(得分:2)

您可以在切入点中指定注释:

@Pointcut("execution(@RequestMapping public * company.controllers.AbstractController+.*(..))")
public void methodPointcut() { } 

这是你已经尝试过的吗?

答案 1 :(得分:1)

我认为使用两个切入点最容易做到这一点。

@Pointcut("execution(public * company.controllers.AbstractController+.*(..))")
public void methodPointcut() {}

@Pointcut("within(@org.springframework.web.bind.annotation.RequestMapping *)")
public void requestMapping() {}

然后干脆做:

@Before(“methodPointcut()&& requestMapping()”)