我有解决办法。关于使用
HandlerInterceptor.afterCompletion方法。但是,此方法的文档中有一行指出:
注意:仅当此拦截器的preHandle方法成功完成并返回true时,才会调用它!
因此,诀窍是还实现
preHandle并使其返回
true。
现在我的拦截器看起来像这样:
@Componentpublic class MyInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // perform common logic here }}但是要注意的一件事是,如果在抛出异常之前有一系列拦截器和一个拦截器,则该拦截器将没有机会执行。因此,如果我们对拦截器链进行重新排序
MyInterceptor,使其位于顶部,那么它将拦截所有请求。



