我已经为aop做了注释。当我用任何方法而不是控制器方法使用它时,它运行良好。但是,当我在我的控制器的方法中使用它时,我的控制器停止工作。它开始给映射404找不到错误。我在这里发现了一个类似的问题:Spring 3 MVC @Controller with AOP interceptors?但我不知道该怎么做。我在我的控制方法是:在弹簧控制器上的Aop注释不起作用
@WebAuditable // This is my annotation that works at other methods
@Override
@RequestMapping(value = "/ad", method = RequestMethod.POST, headers = "Accept=application/json")
public
@ResponseBody
Cd create(HttpServletResponse response, @RequestBody Cd cd) {
...
}
我的,我的控制器实现接口是:
public interface BaseController<T> {
public List<T> getAll(HttpServletResponse response);
public T getByName(HttpServletResponse response, String id);
public T create(HttpServletResponse response, T t);
public T update(HttpServletResponse response, T t);
}
有何意见?
PS: @SeanPatrickFloyd说:
注意当使用控制器接口(如AOP代理),使 一定要始终把你所有的映射注解 - 如 @RequestMapping和@SessionAttributes - 控制器接口 上,而不是在实现类
感谢您的帮助。我将如何注释通用方法,你能告诉我一个例子吗?有一个基础控制器接口,我的所有控制器都实现它。 (实际上有一个实现BaseController的抽象类,但没有实现它的create updatede删除方法,控制器实现它们)。那么我可以通过注释我的BaseController来解决这个问题吗?我怎么能注释它可以显示我的问题? – kamaci
@kamaci看到我的更新 –
我试过了,但没有注解那个接口。我找不到任何方法来做到这一点。你的第二个建议怎么样? – kamaci