一、Spring容器中的bean可以分為5個范圍:
(1)singleton:默認,每個容器中只有一個bean的實例
(2)prototype:為每一個bean請求提供一個實例
一般來說下面幾種作用域,在開發的時候一般都不會用,99.99%的時候都是用singleton單例作用域。
(3)request:為每一個網絡請求創建一個實例,在請求完成以后,bean會失效並被垃圾回收器回收
(4)session:與request范圍類似,確保每個session中有一個bean的實例,在session過期后,bean會隨之失效
(5)global-session
答案是否定的,絕對不可能是線程安全的,spring bean默認來說,singleton,都是線程不安全的,java web系統,一般來說很少在spring bean里放一些實例變量,一般來說他們都是多個組件互相調用,最終去訪問數據庫的。