Spring初始化Bean狀態

2021-09-02 12:59:06 字數 1271 閱讀 7063

一、單例模式:在spring中其實是scope(作用範圍)引數的預設設定值

每個bean定義只生成乙個物件例項,每次getbean請求獲得的都是此例項

單例模式分為餓漢模式和懶漢模式;

關於單例的餓漢,懶漢請參考:

二、預設情況下為單例模式(餓漢),prototype多例項模式介紹

呼叫getbean時,就new乙個新例項

預設單例(餓漢):

prototype多例項模式介紹:

另有:request,session,globalsession

request:

spring容器建立乙個新的例項,利用loginaction,loginaction bean

bean定義為每乙個http請求。也就是說,loginaction bean是作用域

http請求的水平。你可以改變內部狀態的例項建立盡可能多的你

想要的,因為其他例項建立的同乙個loginaction不會看到這些bean定義

變化狀態;他們特定的單個請求。當請求處理完成,作用域的bean的請求就會被丟棄。

session:

spring容器建立乙個新的userpreferences bean使用的例項

userpreferences bean定義為乙個http會話的生命週期。換句話說,

userpreferences bean有效範圍在http會話級別。在請求範圍內

bean,你可以改變內部狀態的例項建立盡可能多的你想要的,

知道其他http會話例項也使用相同的例項建立

userpreferences bean定義看不到這些變化狀態,因為他們是特別的乙個

單獨的http會話。http會話最終丟棄時,作用域的bean特定的http會話也丟棄。

globalsession:

全球會話範圍類似於標準的http會話範圍(如上所述)

只適用於基於portlet的web應用程式的上下文中。portlet規範定義了這個概念

全球會話之間共享的所有portlet組成乙個portlet的web應用程式。

bean在全球會話範圍定義的作用域的生命週期(或約束)全球portlet會話。

如果你寫乙個標準的基於servlet的web應用程式定義乙個或多個bean

全球會話範圍,使用標準的http會話範圍,沒有錯誤。

Spring初始化Bean方法

一 總結 1 spring為bean初始化提供了兩種方式 2 實現initializingbean介面是直接呼叫afterpropertiesset方法,比通過反射呼叫init method指定的方法效率相對來說要高點。但是init method方式消除了對spring的依賴 3 如果呼叫after...

Spring中Bean的初始化流程

spring中經典的9種設計模式 mybatis執行流程 通常乙個 xml 對映檔案,都會寫乙個 dao 介面與之對應,請問,這個 dao 介面的工作原理是什麼?dao 介面裡的方法,引數不同時,方法能過載嗎?id是否可以相同 spring bean 的初始化主要實現在bean.factory包下的...

Spring 初始化bean之前,銷毀bean之前

spring 初始化bean之前,銷毀bean之後需要做的操作方式有三種 1.通過 postconstruct實現初始化之前進行的操作,predestroy實現銷毀bean之前做的操作 2.通過在xml中定義init method和destory method方法 3.通過bean實現initial...