繁体   English   中英

spring mvc宣布所有豆子单身

[英]spring mvc declaring all beans singleton

我有这个新的mvc项目,其中所有bean都是默认作用域(没有原型或会话)。 单一应用程序上下文。

我想知道通过使所有bean成为默认作用域我们试图实现整个应用程序在单线程中运行?

如果是这样会使每个httprequest(来自多个或相同的会话)排队,直到前一个完成?如何避免这种情况任何建议或链接会有所帮助。

我对spring和java开发相对较新。

因为Spring bean通常是无状态的,所以你可以安全地从多个线程调用它们。 这就是你的应用程序的工作方式:每个控制器,服务,DAO等只有一个实例。但是你的servlet容器(通过Spring)从多个线程调用这些bean - 它完全是线程安全的。

事实上,在普通的servlet中,情况是相同的 - 每个servlet只有一个实例,并且可以通过无限数量的线程访问它。 只要此servlet是无状态或正确同步。

不要将Spring与中的无状态会话bean混淆,并且每个客户端都从池中获取自己的实例。 1

1 - 实际上这有点愚蠢 - 因为定义中的bean是无状态的,所以没有必要汇集它们并防止并发访问......

Singleton意味着每个bean只有一个实例。 通常,这种bean是不带状态的处理元素。 调用它们的方法将传递包含要处理的输入的上下文。 因此,对这些单例bean的方法调用本质上是线程安全的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM