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

时间:2014-10-10 12:20:22

标签: java spring-mvc servlets

我对单线程模型和多线程模型感到困惑。 什么类型的模型SpringMVC的工作原理?

谢谢

2 个答案:

答案 0 :(得分:7)

如果你的意思是" Spring MVC是否实现了javax.servlet.SingleThreadModel接口?"然后它没有。

SingleThreadModel保证" servlet一次只处理一个请求。" (来自API文档)。这通常由servlet容器管理,该容器将维护一个Servlet实例池并为每个传入请求分配一个。这是一种很少使用的执行模型,从Java Servlet API 2.4开始,该接口本身已被弃用,没有直接替换。

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

答案 1 :(得分:6)

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