【发布时间】:2012-10-24 16:23:54
【问题描述】:
我想在使用@Controller 注解的类中选择所有使用@RequestMapping 注解的方法。
以下切入点定义可以正常工作......在某些情况下:
@within(org.springframework.stereotype.Controller)
and
@annotation(org.springframework.web.bind.annotation.RequestMapping)
问题是,一旦@Controller-annotated 类实现了某个接口,切入点就不再适用,并且方法不会被拦截。当我刚刚实现 java.io.Serializable 时,甚至会发生这种情况。
例如,这不起作用,但只要我删除“implements Serializable”,它就会起作用:
@Controller
public class TestController extends BaseController implements Serializable {
@RequestMapping(value = "/test")
public String testAuth1(final Model model) {
return "test";
}
}
Spring XML 配置:
<aop:config>
<aop:pointcut id="handlerMethods"
expression="@within(org.springframework.stereotype.Controller) and @annotation(org.springframework.web.bind.annotation.RequestMapping)" />
<aop:aspect ref="handlerAdvice">
<aop:before method="interceptionMethod" pointcut-ref="handlerMethods" />
</aop:aspect>
</aop:config>
对此有什么想法吗?谢谢!
【问题讨论】:
标签: spring spring-aop