从Spring MVC参考:
注意 使用控制器接口时(例如,用于AOP代理),请确保始终将所有映射注释(例如 @RequestMapping
和@SessionAttributes
)放在控制器接口上而不是在实现类上。
当然,此注释已很好隐藏:-)
我遇到了同样的问题,并找到了解决方案。
实际上,你的控制器(由@Controller注释)和方面(由@Aspect注释)应该在同一Spring上下文中。
通常,人们在主要的applicationContext.xml中的dispatch-servlet.xml或xxx-servlet.xml中定义他们的控制器,并在主要applicationContext.xml中定义他们的服务bean(包括方面)。不起作用。
当Spring初始化MVC上下文时,它将为你的控制器创建一个代理,但是如果你的方面不在同一上下文中,则Spring将不会为其创建拦截器。
上面的内容不取决于