Spring容器中Bean的生命週期

2021-07-04 07:11:39 字數 2388 閱讀 5227

例項化;

設定屬性值;

如果實現了beannameaware介面,呼叫setbeanname設定bean的id或者name;

如果實現beanfactoryaware介面,呼叫setbeanfactory 設定beanfactory;

呼叫beanpostprocessor的預先初始化方法;

呼叫initializingbean的afterpropertiesset()方法;

呼叫定製init-method方法;

呼叫beanpostprocessor的後初始化方法;

spring容器關閉過程

1. 呼叫disposablebean的destroy();

2. 呼叫定製的destroy-method方法;

建立lifecyclebean 類,**如下

import org.springframework.beans.bean***ception;

import org.springframework.beans.factory.beanfactory;

import org.springframework.beans.factory.beanfactoryaware;

import org.springframework.beans.factory.beannameaware;

import org.springframework.beans.factory.disposablebean;

import org.springframework.beans.factory.initializingbean;

public

class

lifecyclebean

implements

initializingbean,

private string str = "default";

public

lifecyclebean()

public

lifecyclebean(string str)

public string getstr()

public

void

setstr(string str)

public

void

init()

public

void

cleanup()

public

void

afterpropertiesset() throws exception

public

void

destroy() throws exception

public

void

}public

void

setbeanfactory(beanfactory arg0) throws bean***ception

public

void

setbeanname(string arg0)

}

建立配置檔案(init.xml),**如下

"lifecyclebean"

class="org.ifly.edu.spring.bean.init.lifecyclebean"

init-method="init" destroy-method="cleanup">

"str"

value="hello"/>

public

static

void

main(string args)

執行結果:

construct lifecyclebean*****

setstr*****

mybeanpostprocessor postprocessbeforeinitialization bean 『lifecyclebean

afterpropertiesset*****

init mtd*****

****mybeanpostprocessor postprocessafterinitialization bean 『lifecyclebean

***********org.ifly.edu.spring.bean.init.lifecyclebean@11dba45 hello

destroy*****

cleanup mtd*****

disposablebean inte***ce….123

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...