Singleton - Spring Bean为什么不是线程安全的

时间:2015-06-30 08:06:16

标签: java multithreading spring thread-safety spring-bean

我理解Object CreationThread safety是两回事。

Singleton是一种构造对象的方法,我们遵循一些设计模式来构造对象。

Spring Bean - 使用Singleton范围,我们保证只有1个实例存在,但Spring bean仍然不是线程安全的..为什么.. ??

1 个答案:

答案 0 :(得分:2)

不能是线程安全的,正是因为只创建了一个实例,所以每个请求(线程)都将使用相同的实例,因此可能会出现并发问题。

例如,如果您的范围是原型,Spring不会使用单例,然后它将为每个getClass调用创建一个实例。

对于请求或会话,实例将由请求或每个用户会话创建。

通常,对所有state-full bean使用原型范围,对无状态bean使用singleton范围。

您可以在文档中阅读它是如何工作的

http://www.tutorialspoint.com/spring/spring_bean_scopes.htm