1. 程式人生 > >Spring基礎(8)——Bean的生命週期——BeanFactory中Bean的生命週期

Spring基礎(8)——Bean的生命週期——BeanFactory中Bean的生命週期

1、定義Bean

Bean定義包括的內容如下:

全限定類名:通常是Bean的真正實現類,但是如果一個Bean使用一個靜態工廠方法建立,而不是由普通的構造方法建立,那麼這實際上就是工廠類的全限定名

Bean行為配置元素:宣告這個Bean在容器中的行為方式,例如:prototype或singleton,自動裝配模式、依賴模式檢查、初始化和析構方法;

構造方法的引數和新建立Bean需要的屬性:例如一個管理連線池的Bean使用的連線數目或者池的其他大小限制,既可以指定為一個屬性,也可以作為一個構造方法引數;

和這個Bean工作相關的其他Bean:例如他的協作者,這個也叫做依賴;

特性說明
classBean的類
id和nameBean的識別符號,id和name
singleton或prototypeSingleton的是否使用
建構函式方法設定bean的屬性和協作者
bean的屬性設定bean的屬性和協作者
自動裝配模式自動裝配協作物件
依賴檢查模式依賴檢查
初始化模式生命週期介面
析構方法生命週期介面
Bean定義可以表示為真正的介面BeanDefinition以及他的各種子介面和實現,然而絕大多數使用者程式碼不需要與beandefination直接接觸。

2、初始化Bean

在Bean例項化之前設定某些引數,有兩種方式:在配置檔案中指定init-method屬性和bean實現initializingBean介面;

3、呼叫Bean

呼叫Bean有三種方式:BeanFactory和ApplicationContext方式及BeanWrapper方式。BeanWrapper要求相應的Bean具有設定注入的setter方法,否則將不能使用BeanWraper的setPropertyValue()方法進行初始化。

Test test = new Test();
BeanWrapper bw = new BeanWrapperImpl(test);
bw.setPropertyValue("msg","hello");
bw.setPropertyValue("startDate",new Date());
test.toString();

4、銷燬Bean

使用配置檔案中destrop-method屬性:

在銷燬Bean是,Spring將自動呼叫指定的銷燬方法;

實現DisposableBean介面:

在Bean中實現DisposableBean介面的同事,必須實現該介面的destroy方法。