spring 生命週期

2021-08-14 08:12:39 字數 1135 閱讀 6240

spring 生命週期

ioc容器:

1、載入配置檔案

2、資源定位

3、資源解析

4、生成beandefinition元資訊

5、通過工廠把beandefinition載入到容器中

初始化bean例項,由spring產生的bean預設是單例的;

依賴注入,就是處理的,bean引用bean的問題

ioc就是處理的事,bean的例項化的問題

依賴注入其實分為兩個步驟:

1. 通過反射建立例項;

2. 獲取需要注入的介面實現類並將其賦值給該介面。

ioc 與依賴注入的區別

ioc:控制反**將物件的建立權,由spring管理. 

di(依賴注入):在spring建立物件的過程中,把物件依賴的屬性注入到類中。 

它們兩就這樣,其他什麼毛線都沒有了。

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

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

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

spring bean 預設是單例模式。

對於具有prototype作用域的bean,有一點很重要,即spring不能對該bean的整個生命週期負責。具有prototype作用域的bean建立後交由呼叫者負責銷毀物件**資源。

一般情況下,有狀態的bean需要使用prototype模式,而對於無狀態的bean一般採用singleton模式(一般的dao都是無狀態的)。

spring中所有的類都會在spring容器中登記,告訴spring你是個什麼東西,你需要什麼東西,然後spring會在系統執行到適當的時候,把你要的東西主動給你,同時也把你交給其他需要你的東西。所有的類的建立、銷毀都由 spring來控制,也就是說控制物件生存週期的不再是引用它的物件,而是spring。對於某個具體的物件而言,以前是它控制其他物件,現在是所有物件都被spring控制,所以這叫控制反轉。如果你還不明白的話,我決定放棄。

ioc的乙個重點是在系統執行中,動態的向某個物件提供它所需要的其他物件。這一點是通過di(dependency injection,依賴注入)來實現的。

Spring 生命週期

public void refresh throws bean ception,illegalstateexception catch bean ception ex 1.preparerefresh 用於設定spring啟動時間並且設定active flag 為true 2.configurabl...

Spring生命週期

1.容器啟動,例項化所有實現了beanfactorypostprocessor介面的類.它會在任何普通bean例項化之前載入.2.例項化剩下的bean,對這些bean進行依賴注入.3.如果bean有實現beannameaware的介面那麼對這些bean進行呼叫 4.如果bean有實現beanfact...

spring的生命週期

標籤 空格分隔 spring 1.spring ioc 容器可以管理bean的生命週期,spring允許在bean生命週期的特定點執行定製的任務。2.在bean的宣告裡設定init method和destroy method屬性,為bean指定初始化和銷毀方法。整個生命週期的流程為 1.通過構造器或...