實用 Spring容器中Bean的生命週期

2021-09-27 00:03:44 字數 2868 閱讀 9600

類別

說明singleton

在springioc容器中僅存在乙個bean例項,bean以單例項的方式存在

prototype

每次呼叫getbean()時都會返回乙個新的例項

request

每次http請求都會建立乙個新的bean,該作用域僅適用於

session

同乙個http session共享乙個bean,不同的http session使用不同的

當bean被載入到容器的時候呼叫init

當bean從容器中刪除的時候呼叫 destroy(scope=

singleton有效)

web容器中會自動呼叫,但是main函式或測試用例需要手動呼叫

1.instantiate bean物件例項化2.populate properties封裝屬性3. 如果bean實現beannameaware執行setbeanname4. 如果bean實現beanfactoryaware或者設定工廠setbeanfactory或者上下文物件5. 如果存在類實現beanpostprocessor(後處理bean) ,執行postprocessbeforeinitialization

6. 如果bean實現initializingbean執行afterpropertiesset

7. 呼叫指定初始化方法init如果存在類實現beanpostprocessor(處理bean) ,執行postprocessafterinitialization

8. 執行業務處理

9. 如果bean實現disposablebean執行destroy

10. 呼叫指定銷毀方法customerdestroy

man實體類

private string name;

public string getname()

public void setname(string name)

public man()

public void setup()

public void teardown()

@override

public void setbeanname(string name)

@override

system.out.println("第四步:了解工廠資訊");

}@override

public void afterpropertiesset() throws exception

public void run()

@override

public void destroy() throws exception }

mybeanpostprocessor

public class mybeanpostprocessor implements beanpostprocessor 

@override

public object postprocessafterinitialization(object bean, string beanname) throws bean***ception

return method.invoke(bean,args);

}});

return proxy;

}else }}

測試類:

public class springdemo3 

}

執行結果:

spring容器中的bean建立

springioc spring容器中的bean建立 三種方案 面試題 利用預設的建構函式 利用靜態工廠方法 利用例項工廠方法 建立物件的時機 預設情況下,在spring啟動的時候,建立納入spring容器中所有的bean 在spring容器啟動的時候,可以檢查錯誤 但是如果bean的屬性中有資料,...

Spring容器中Bean的lazy init屬性

在spring容器中新增兩個物件 testbean class com.fhx.testbean testbean class com.fhx.testbean lazy init false lazy init 設定只對scop屬性為singleton的bean起作用 lazy init fals...

Spring中利用容器得到Bean物件

在 spring 中提供了兩種方法用來載入配置檔案的資訊和得到我們需要的 bean 這就是 beanfactory 介面和介面 下面分別來介紹如何得到 bean物件 1 beanfactory 方式,spring 為我們提供了很多易用的 beanfactory 介面實現,其中 xmlbeanfact...