我理解Object Creation
和Thread safety
是两回事。
Singleton
是一种构造对象的方法,我们遵循一些设计模式来构造对象。
Spring Bean - 使用Singleton
范围,我们保证只有1个实例存在,但Spring bean仍然不是线程安全的..为什么.. ??
答案 0 :(得分:2)
不能是线程安全的,正是因为只创建了一个实例,所以每个请求(线程)都将使用相同的实例,因此可能会出现并发问题。
例如,如果您的范围是原型,Spring不会使用单例,然后它将为每个getClass调用创建一个实例。
对于请求或会话,实例将由请求或每个用户会话创建。
通常,对所有state-full bean使用原型范围,对无状态bean使用singleton范围。
您可以在文档中阅读它是如何工作的