Spring框架并沒有對單例bean進(jìn)行任何多線程的封裝處理。關(guān)于單例bean的線程安全和并發(fā)問題需要開發(fā)者自行去搞定。
但實(shí)際上,大部分的Spring bean并沒有可變的狀態(tài),所以在某種程度上說Spring的單例bean時(shí)線程安全的。如果你的bean有多種狀態(tài)的話,比如view model,就需要自行保證線程安全啦。
最淺顯的解決辦法就是將多態(tài)bean的作用域由singleton變更為prototype。