1. 程式人生 > >Spring---Bean

Spring---Bean

post pri ble factory ext -name npos 傳統 ati

  在傳統的Java應用中,bean的生命周期很簡單。使用Java關鍵字new進行bean實例化,然後bean就可以被使用了,一旦該bean不再使用,Java就自動進行垃圾回收。然而,在Spring中,bean的生命周期就比較復雜了。下面是一個bean裝載到Spring應用上下文的過程:

技術分享

如圖所示:在你準備調用bean之前,bean工廠執行了若幹啟動步驟:

1.Spring對bean進行實例化;
2.Spring將值和bean的引用註入到bean對應的屬性中;
3.如果bean實現了BeanNameAware接口,Spring將bean的ID傳遞給setBean-Name()方法;
4.如果bean實現了BeanFactoryAware接口,Spring將調用setBeanFactory()方法,將BeanFactory容器實例傳入;
5.如果bean實現了ApplicationContextAware接口,Spring將調用setApplicationContext()方法,將bean所在的應用上下文的
引用傳入進來;
6.如果bean實現了BeanPostProcessor接口,Spring將調用它們的post-ProcessBeforeInitialization()方法;
7.如果bean實現了InitializingBean接口,Spring將調用它們的after-PropertiesSet()方法。類似地,如果bean使用initmethod
聲明了初始化方法,該方法也會被調用;
8.如果bean實現了BeanPostProcessor接口,Spring將調用它們的post-ProcessAfterInitialization()方法;
9.此時,bean已經準備就緒,可以被應用程序使用了,它們將一直駐留在應用上下文中,直到該應用上下文被銷毀;
10.如果bean實現了DisposableBean接口,Spring將調用它的destroy()接口方法。同樣,如果bean使用destroy-method聲明了銷
毀方法,該方法也會被調用。

Spring---Bean