Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC是在单线程模型上工作还是在多线程模型上工作?_Java_Spring Mvc_Servlets - Fatal编程技术网

Java SpringMVC是在单线程模型上工作还是在多线程模型上工作?

Java SpringMVC是在单线程模型上工作还是在多线程模型上工作?,java,spring-mvc,servlets,Java,Spring Mvc,Servlets,我对单线程模型和多线程模型感到困惑。 SpringMVC适用于哪种类型的模型 谢谢你SpringMVC控制器是单例的,可以处理并发请求。它们是以多线程方式使用的,因此必须编写为线程安全的(执行之间没有共享状态)。如果您的意思是“Spring MVC是否实现了javax.servlet.SingleThreadModel接口?”则不是 SingleThreadModel保证“servlet一次只处理一个请求。”(来自API文档)。这通常由servlet容器管理,该容器将维护一个servlet实例池

我对单线程模型和多线程模型感到困惑。 SpringMVC适用于哪种类型的模型


谢谢你

SpringMVC控制器是单例的,可以处理并发请求。它们是以多线程方式使用的,因此必须编写为线程安全的(执行之间没有共享状态)。

如果您的意思是“Spring MVC是否实现了javax.servlet.SingleThreadModel接口?”则不是

SingleThreadModel保证“servlet一次只处理一个请求。”(来自API文档)。这通常由servlet容器管理,该容器将维护一个servlet实例池,并为每个传入请求分配一个实例。这是一个很少使用的执行模型,并且该接口本身在JavaServletAPI2.4中已经被弃用,没有直接替换


使用Spring MVC,您应该假设您的控制器一次将处理多个请求,这使您有责任确保您的处理是线程安全的。

通常,Spring MVC是线程安全的,除非javadoc明确表示。另外,“单/多线程模型”是Servlet规范所说的吗?如果是,请记住“单线程模型”与所有体面的web应用程序无关,您将始终在多线程模型中工作(因此您可以假设所有最近的框架都在多线程模型中工作)。有关更多信息,请参阅