首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring MVC应用程序可以是多线程的吗,即使它的servlet不是?

Spring MVC应用程序可以是多线程的吗,即使它的servlet不是?
EN

Stack Overflow用户
提问于 2011-05-12 23:14:06
回答 4查看 8.9K关注 0票数 5

当您谈到Spring应用程序是多线程时,您是否一定是指该应用程序中定义的servlet是否是多线程的?

或者,即使应用程序中的servlet不是多线程的,Spring应用程序也可以配置为多线程吗?

EN

回答 4

Stack Overflow用户

发布于 2011-05-12 23:18:05

不再支持单线程servlet。它们已经被弃用了很长时间,所以所有的servlet都是多线程的。

然后,spring不使用servlet(除了dispatcher之外)。它使用bean,bean可以是控制器、服务和存储库(daos)。

这些mean是线程安全的(我想你所说的“多线程”是指“多线程”),如果它们的字段中没有任何数据(除了它们的依赖项)。

简而言之,不要在spring bean中存储任何数据。将所有需要的数据作为参数传递。

票数 7
EN

Stack Overflow用户

发布于 2011-05-12 23:19:13

典型的java web应用是多线程的,因为每个请求都是在它自己的线程上处理的。在这类应用程序中,当您拥有维护状态的对象(例如,通过修改静态属性)时,您必须小心,因为它们可能会相互覆盖。

在讨论servlet时,如果两个请求同时进入同一个servlet,则相关的servlet代码将同时执行两次。在像Struts或Spring这样将请求委托给对象的框架中,可以重用相同的bean实例,也可以为每个请求创建一个新的bean实例,这取决于您配置框架的方式(即在Spring中使用原型或单例)。

票数 4
EN

Stack Overflow用户

发布于 2011-05-12 23:19:17

Spring MVC使用一个分派servlet来调用定义的Controller,也就是说,控制器应该是无状态的,排除了Spring注入的bean。通过一个操作更改一个控制器的状态可以影响另一个操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5980246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档