2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Spring框架中的單例bean是線程安全的嗎?

更新時間:2023-04-20 來源:黑馬程序員 瀏覽量:

IT培訓班

Spring bean并沒有可變的狀態(比如Service類和DAO類),所以在某種程度上說Spring的單例bean是線程安全的。

不是線程安全的Spring框架中有一個@Scope注解,默認的值就是singleton,單例的。因為一般在spring的bean的中都是注入無狀態的對象,沒有線程安全問題,如果在bean中定義了可修改的成員變量,是要考慮線程安全問題的,可以使用多例或者加鎖來解決。

當多用戶同時請求一個服務時,容器會給每一個請求分配一個線程,這是多個線程會并發執行該請求對應的業務邏輯(成員方法),如果該處理邏輯中有對該單列狀態的修改(體現為該單例的成員屬性),則必須考慮線程同步問題。

Spring框架并沒有對單例bean進行任何多線程的封裝處理。關于單例bean的線程安全和并發問題需要開發者自去搞定。

比如:我們通常在項目中使用的Springbean都是不可可變的狀態(比如Service類和DAO類),所以在某種程度上說Spring的單例bean是線程安全的。

如果你的bean有多種狀態的話(比如ViewModel對象),就需要自行保證線程安全。最淺顯的解決辦法就是將多態bean的作用由"singleton"變更為"prototype"。

分享到:
在線咨詢 我要報名
和我們在線交談!