Spring框架中的单例Bean是线程安全的么?

Spring中的Bean默认是单例模式的,框架并没有对bean进行多线程的封装。所以单例bean是线程不安全的。
如果Bean是有状态的(有状态即有数据存储功能),则需要我们自己来保证线程安全。
最简单的方法即改变Bean作用域,将单例变为原型,即'singleton'改为'protopyte',这样每次请求的Bean都是重新new一个Bean。
或用ThreadLocal来包装变量,将变量变为线程私有的。
或使用synchronized修饰变量来实现线程同步。

posted @ 2023-02-07 23:11  程长新  阅读(607)  评论(0)    收藏  举报