Spring 3.1 HandlerInterceptor未被调用

我按照HandlerInterceptors的文档。 注意到在新版本的Spring中:“配置的拦截器将应用于使用带注释的控制器方法处理的所有请求”。

以下是xml配置文件: 在此处输入图像描述

我有一个带注释的控制器,像这样:

在此处输入图像描述

当我请求执行控制器代码的url时,我的拦截器代码永远不会被调用。 任何人都可以解释为什么?

拦截器代码是:

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class DomainNameInterceptor extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("Why is this not called?"); return true; } } 

我使用以下文档: Spring Core 3.1.x文档

我搜索了HandlerInterceptor并按照包含链接中的文档中给出的示例进行了操作。

如果您使用配置了MVC上下文,那么我认为在基于此自定义命名空间定义bean时创建的handlerMapping将覆盖您已定义的handlerMapping。 注册拦截器的更好方法是使用子标签来定义拦截器,这样它就会被注册到正确的handlerMapping:

      

Biju上面的回答是正确的,除了在春季3.1你必须这样做: