我的控制器中有一个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
答案 0 :(得分:1)
您在会话中打开了新选项卡,可能会导致同步问题。
虽然您将查看Spring Docs,但您会发现:
RequestMappingHandlerAdapter.setSynchronizeOnSession(boolean)
同步会话互斥锁上的每个控制器。这可能对您的应用程序来说太过分了。但它至少使会话中的控制器线程安全,而不会阻止其他用户。
希望,这会有所帮助。