Java SpringMVC是在单线程模型上工作还是在多线程模型上工作?
我对单线程模型和多线程模型感到困惑。 SpringMVC适用于哪种类型的模型Java SpringMVC是在单线程模型上工作还是在多线程模型上工作?,java,spring-mvc,servlets,Java,Spring Mvc,Servlets,我对单线程模型和多线程模型感到困惑。 SpringMVC适用于哪种类型的模型 谢谢你SpringMVC控制器是单例的,可以处理并发请求。它们是以多线程方式使用的,因此必须编写为线程安全的(执行之间没有共享状态)。如果您的意思是“Spring MVC是否实现了javax.servlet.SingleThreadModel接口?”则不是 SingleThreadModel保证“servlet一次只处理一个请求。”(来自API文档)。这通常由servlet容器管理,该容器将维护一个servlet实例池
谢谢你SpringMVC控制器是单例的,可以处理并发请求。它们是以多线程方式使用的,因此必须编写为线程安全的(执行之间没有共享状态)。如果您的意思是“Spring MVC是否实现了javax.servlet.SingleThreadModel接口?”则不是 SingleThreadModel保证“servlet一次只处理一个请求。”(来自API文档)。这通常由servlet容器管理,该容器将维护一个servlet实例池,并为每个传入请求分配一个实例。这是一个很少使用的执行模型,并且该接口本身在JavaServletAPI2.4中已经被弃用,没有直接替换
使用Spring MVC,您应该假设您的控制器一次将处理多个请求,这使您有责任确保您的处理是线程安全的。通常,Spring MVC是线程安全的,除非javadoc明确表示。另外,“单/多线程模型”是Servlet规范所说的吗?如果是,请记住“单线程模型”与所有体面的web应用程序无关,您将始终在多线程模型中工作(因此您可以假设所有最近的框架都在多线程模型中工作)。有关更多信息,请参阅