Spring IoC容器對Bean生命週期進行管理的過程:
1)通過構造器或者工廠方法創建Bean實例
2)爲Bean的屬性設置值和對其他Bean的引用
3)調用Bean的初始化回調方法
4)Bean可以使用了
5)當容器關閉時,調用Bean的銷燬回調方法
三種回調:
1)實現InitializingBean和DisposableBean這兩個生命週期的接口
在afterPropertiesSet()方法裏實現初始化任務,在destroy()方法裏實現銷燬任務
2)在Bean的聲明裏設置init-method和destroy-method屬性,在這兩個方法裏指定回調方法的名稱
3)給初始化和銷燬的回調方法添加生命週期註解@PostConstruct 和 @PreDestroy,
這兩個註解定義在JSR-250(common annotations for the java platform)裏,接下來,
要在IoC容器裏註冊CommonAnnotationBeanPostProcessor實例來調用這些回調方法
——————————————————————————————————————————
Bean後置處理器
Bean後置處理器允許在調用初始化方法前後對Bean進行額外處理。它的主要特點是:它將對IoC容器裏所有的Bean實例逐一進行處理,而不是單獨一個Bean實例。一個典型的例子就是用Bean後置處理器檢查Bean屬性的正確性,或者根據特定的標準更改Bean的屬性。
其基本要求是實現BeanPostProcessor接口,通過PostProcessBeforeInitialization和PostProcessAfterInitialization方法,Bean後置處理器可以再初始化回調方法被調用後的前後對每個Bean進行處理