Spring中Bean的單例和多例

2021-10-09 02:12:48 字數 853 閱讀 6321

在spring中,bean可以被定義為兩種模式:prototype(多例)和singleton(單例)

singleton(單例):只有乙個共享的例項存在,所有對這個bean的請求都會返回這個唯一的例項。

prototype(多例):對這個bean的每次請求都會建立乙個新的bean例項,類似於new。

spring bean 預設是單例模式。

實戰演示:

在配置檔案中,修改這句**為:

在測試類中,修改**為:

hi hi1 = (hi) context.getbean("hi");

hi hi2 = (hi) context.getbean("hi");

system.out.println(hi1);

system.out.println(hi2);

結果為:

結論:二個變數指向乙個物件。

將配置檔案改為:

其他的不變,執行測試類,結果為:

結論:每次訪問bean,均建立乙個新例項。

此外,在springboot專案中如果要配置單例或者多例,可以在對應的bean上加乙個@scope()註解

spring中的bean預設是單例模式

餓漢模式 spring singleton的預設是餓漢模式 啟動容器時 即例項化容器時 為所有spring配置檔案中定義的bean都生成乙個例項 懶漢模式 在第乙個請求時才生成乙個例項,以後的請求都呼叫這個例項 spring singleton設定為懶漢模式 二 另一種和singleton對應的sc...

spring原始碼解析 單例Bean迴圈依賴解決方法

0x01 前提條件 0x02 解決方法 1 bean工廠在建立bean之前會嘗試從快取中拿到bean,bean工廠中定義了 快取 singletonobjects 一級快取 earlysingletonobjects 二級快取 singletonfactories 快取 以下 片段摘自default...

spring依賴注入bean 預設是單例模式

spring提供了5種scope分別是singleton prototype request session global session。單例bean與原型bean的區別 單例bean的優勢 由於不會每次都新建立新物件所以有一下幾個效能上的優勢 單例bean的劣勢 單例的bean乙個很大的劣勢就是...