在spring中,bean可以被定義為兩種模式:prototype(多例)和singleton(單例)
singleton(單例):只有乙個共享的例項存在,所有對這個bean的請求都會返回這個唯一的例項。
prototype(多例):對這個bean的每次請求都會建立乙個新的bean例項,類似於new。
spring bean 預設是單例模式。
實戰演示:
在配置檔案中,修改這句**為:
1在測試類中,修改**為:<
bean
id="hi"
class
="com.test.hi"
init-method
="init"
scope
="singleton"
>
2 hi hi1 = (hi) context.getbean("hi");
3 hi hi2 = (hi) context.getbean("hi");
4system.out.println(hi1);
5 system.out.println(hi2);
結果為:
結論:二個變數指向乙個物件。
將配置檔案改為:
<其他的不變,執行測試類,結果為:bean
id="hi"
class
="com.test.hi"
init-method
="init"
scope
="prototype"
>
結論:每次訪問bean,均建立乙個新例項。
菜鳥學習之路 單例模式學習
單例模式設定思想 可以保證程式在執行過程中,乙個類只有乙個例項 乙個物件 步驟 1.建乙個全域性的變數 2.在allocwithzone 方法中攔截記憶體的分配,並在方法內部加執行緒鎖,防止多個執行緒同時載入方法 3.在新建乙個share方法,方便外界分辨 import person.h imple...
Spring 單例模式和多例模式
singleton 單例 只有乙個共享的例項存在,所有對這個bean的請求都會返回這個唯一的例項。prototype 多例 對這個bean的每次請求都會建立乙個新的bean例項,類似於new。spring bean 預設是單例模式。單例測試 測試類user user1 user context.ge...
Spring單例模式和多例模式
預設情況下scope singleton 那麼該bean是單例,任何人獲取該bean例項的都為同乙個例項 scope prototype 任何乙個例項都是新的例項 scope request 在web應用程式中,每乙個例項的作用域都為request範圍 scope session 在web應用程式中...