RequestMapping不是多线程的吗?

时间:2015-12-09 03:00:36

标签: java spring spring-mvc

我的控制器中有一个RequestMapping侦听Web请求,每当有人访问我的网页时,它都会将响应延迟5000毫秒。

一切正常,但当我再次使用Chrome中的新标签访问时,第二个请求最终会延迟10000毫秒。这让我感到困惑,Spring MVC不是多线程的吗?有人能告诉我这里发生了什么吗?

@RequestMapping("/view")
@ResponseBody

public String View() throws InterruptedException {
    Thread.sleep(5000);
    return "done";
}

修改
我的春季靴子版本是1.2.7.RELEASE 依赖项:spring-boot-starter-web

1 个答案:

答案 0 :(得分:1)

您在会话中打开了新选项卡,可能会导致同步问题。 虽然您将查看Spring Docs,但您会发现: RequestMappingHandlerAdapter.setSynchronizeOnSession(boolean)同步会话互斥锁上的每个控制器。这可能对您的应用程序来说太过分了。但它至少使会话中的控制器线程安全,而不会阻止其他用户。

希望,这会有所帮助。