Spring基礎(8)——Bean的生命週期——BeanFactory中Bean的生命週期
阿新 • • 發佈:2019-01-07
1、定義Bean
Bean定義包括的內容如下:
全限定類名:通常是Bean的真正實現類,但是如果一個Bean使用一個靜態工廠方法建立,而不是由普通的構造方法建立,那麼這實際上就是工廠類的全限定名
Bean行為配置元素:宣告這個Bean在容器中的行為方式,例如:prototype或singleton,自動裝配模式、依賴模式檢查、初始化和析構方法;
構造方法的引數和新建立Bean需要的屬性:例如一個管理連線池的Bean使用的連線數目或者池的其他大小限制,既可以指定為一個屬性,也可以作為一個構造方法引數;
和這個Bean工作相關的其他Bean:例如他的協作者,這個也叫做依賴;
特性 | 說明 |
---|---|
class | Bean的類 |
id和name | Bean的識別符號,id和name |
singleton或prototype | Singleton的是否使用 |
建構函式方法 | 設定bean的屬性和協作者 |
bean的屬性 | 設定bean的屬性和協作者 |
自動裝配模式 | 自動裝配協作物件 |
依賴檢查模式 | 依賴檢查 |
初始化模式 | 生命週期介面 |
析構方法 | 生命週期介面 |
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方法。