Java Spring MVC控制器中的请求映射命中两次

Java Spring MVC控制器中的请求映射命中两次,java,spring,spring-mvc,Java,Spring,Spring Mvc,上面提到的请求映射命中了两次。如何停止此操作?您可以检查扫描控制器组件的应用程序上下文是否加载了两次。例如,在web xml中,您将dispatcher servlet配置为web.xml中的dispatcher,并将contextConfigLocation配置为加载以下bean配置文件 @RequestMapping("/form") public String formForCreate(Model model) { log("Action 'formForCreate'"); }

上面提到的请求映射命中了两次。如何停止此操作?

您可以检查扫描控制器组件的应用程序上下文是否加载了两次。例如,在web xml中,您将dispatcher servlet配置为web.xml中的dispatcher,并将contextConfigLocation配置为加载以下bean配置文件

@RequestMapping("/form")
public String formForCreate(Model model) {
log("Action 'formForCreate'");   
}

上下文配置位置
classpath*:dispatcher-servlet.xml

这可能会导致控制器在每个请求中被命中两次,因为dispatcher servlet在dispatcher servlet启动时自动加载一次,而ContextLoaderListener在另一次启动时自动加载一次。

如何衡量它命中两次?这不是简单的日志配置错误吗(登录两次)。分享更多的代码、错误消息、控制台输出…问题需要一些详细信息。你确定你没有叫它两次吗?也许它会重新加载页面?也许页面会默认加载,当您转到Url时会重新加载?Abdelhak是正确的。检查服务器加载时,RequestMappings是否初始化了两次。这可能是由于配置错误导致的,您两次加载所有bean(例如,两个applicationcontexts)。控制器不会被击中两次。如果有两个bean注册为同一类型,它们将具有相同的
@RequestMapping
,Spring MVC将抱怨映射重复并崩溃,@Schaka。Spring对每个请求只使用一个处理程序。
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath*:dispatcher-servlet.xml</param-value>
</context-param>