spring中的bean預設是單例模式

2021-08-03 16:45:27 字數 897 閱讀 6636

餓漢模式

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屬性具有唯一性,每...