餓漢模式
spring singleton的預設是餓漢模式:啟動容器時(即例項化容器時),為所有spring配置檔案中定義的bean都生成乙個例項
懶漢模式
在第乙個請求時才生成乙個例項,以後的請求都呼叫這個例項
spring singleton設定為懶漢模式:
二、另一種和singleton對應的scope值---prototype多例項模式
呼叫getbean時,就new乙個新例項
singleton和prototype的比較
xml配置檔案:
測試**:
ontext("spring-hibernate-mysql.xml");
***typedao tdao1 = (***typedao)ctx.getbean("***typedao");
***typedao tdao2 = (***typedao)ctx.getbean("***typedao");
執行:
true
com.terana.hibernate.impl.***typedaoimpl@15b0333
com.terana.hibernate.impl.***typedaoimpl@15b0333
說明前後兩次getbean()獲得的是同一例項,說明spring預設是單例
prototype:
scope="prototype" />
執行同樣的測試**
執行:false
com.terana.hibernate.impl.***typedaoimpl@afae4a
com.terana.hibernate.impl.***typedaoimpl@1db9852
說明scope="prototype"後,每次getbean()的都是不同的新例項
spring依賴注入bean 預設是單例模式
spring提供了5種scope分別是singleton prototype request session global session。單例bean與原型bean的區別 單例bean的優勢 由於不會每次都新建立新物件所以有一下幾個效能上的優勢 單例bean的劣勢 單例的bean乙個很大的劣勢就是...
spring中的bean是執行緒安全的嗎
spring中的bean,如controller,service等,都是bean,另外還有註解 bean也是 結論 不是執行緒安全的 1 在 controller service等容器中,預設情況下,scope值是單例 singleton的,也是執行緒不安全的。2 盡量不要在 controller ...
Spring中Bean的配置
以下面的xml檔案舉例 第乙個bean的名稱為role,第二個bean的名稱為medicine,第三個bean的名稱為spring.chapter.mary.poison,第四個bean的名稱為spring.chapter.mary.poison 1 id和name的區別如下 id屬性具有唯一性,每...