Spring bean的單利模式和非單利模式

2021-06-15 05:21:07 字數 684 閱讀 4362

spring bean預設情況下所有bean是單一的,即單利模式。**中表示:scope="singleton"/

>。singleton表示spring容器中只會建立乙個叫做mybean的bean物件。所有的對該bean的請求都由該物件來處理,這個bean物件就是共享的,就是說這個bean是非執行緒安全的。既然如此那我們的三層框架的service和dao層中由容器注入的bean不都是非執行緒安全的嗎?這樣不是會出問題嗎?答案是那些bean中沒有使用全域性變數,也就是說沒有共享的資料,所以我們可以不用去管它。若是有了共享資料,那為了執行緒安全,我們可以設定singleton=「false」來保證其安全性。

什麼時候我們會經常使用非單利的bean呢?是在將action交給spring管理的時候,容器生成的action的bean就是非單利的。在struts.xml(struts2)中配置如下:(struts1不知道如何配置)。由容器管理action的bean還需要乙個配置,那就是

scope=「prototype」。這樣的話,這樣的話頁面每次請求乙個action的bean就會產生乙個新的物件來處理使用者的請求。這樣就保證了其執行緒安全性。

1,2,

3,《spring in action 中文版 第二版》第二章的2.5小節:控制bean的初始化(2.5.1 bean的範圍化)

設計模式 單利模式

單例模式的核心是保證乙個類只有乙個例項,並且提供乙個訪問例項的全域性訪問點。1 spring中bean物件的模式實現方式 2 servlet中每個servlet的例項 3 springmvc框架中,控制器物件是單例模式 4 專案中,讀取配置檔案的類,一般也只有乙個物件。沒有必要每次使用配置檔案資料,...

設計模式 單利

單利設計模式 解決乙個類在記憶體只存在乙個物件 步驟 1 建構函式私有化 2 類中建立本類物件 3 提供乙個方法可以獲取到該物件 1 餓漢式 class single private static single s new single public static single getinstanc...

C 單利模式

c 單利模式 1.實現單利模式是,通常會使用乙個靜態指標來指向乙個建立在堆上的例項,例項可以等到第一次使用時建立,因為建立在堆上所以要手動釋放記憶體。例如 singleton getinstance 2.當然也可以使用靜態成員變數來實現,直接放回靜態成員變數的位址就行,這樣就可以不用擔心記憶體釋放問...