簡體   English   中英

spring mvc宣布所有豆子單身

[英]spring mvc declaring all beans singleton

我有這個新的mvc項目,其中所有bean都是默認作用域(沒有原型或會話)。 單一應用程序上下文。

我想知道通過使所有bean成為默認作用域我們試圖實現整個應用程序在單線程中運行?

如果是這樣會使每個httprequest(來自多個或相同的會話)排隊,直到前一個完成?如何避免這種情況任何建議或鏈接會有所幫助。

我對spring和java開發相對較新。

因為Spring bean通常是無狀態的,所以你可以安全地從多個線程調用它們。 這就是你的應用程序的工作方式:每個控制器,服務,DAO等只有一個實例。但是你的servlet容器(通過Spring)從多個線程調用這些bean - 它完全是線程安全的。

事實上,在普通的servlet中,情況是相同的 - 每個servlet只有一個實例,並且可以通過無限數量的線程訪問它。 只要此servlet是無狀態或正確同步。

不要將Spring與中的無狀態會話bean混淆,並且每個客戶端都從池中獲取自己的實例。 1

1 - 實際上這有點愚蠢 - 因為定義中的bean是無狀態的,所以沒有必要匯集它們並防止並發訪問......

Singleton意味着每個bean只有一個實例。 通常,這種bean是不帶狀態的處理元素。 調用它們的方法將傳遞包含要處理的輸入的上下文。 因此,對這些單例bean的方法調用本質上是線程安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM