Spring Bean初始化擴展接口

InitialingBean和DisposableBean

InitialingBean 接口 擴展 afterPropertiesSet()
DisposableBean 接口 擴展 destory()
前者顧名思義在Bean屬性都設置完畢後調用afterPropertiesSet()方法做一些初始化的工作,後者在Bean生命週期結束前調用destory()方法做一些收尾工作。

BeanNameAware、ApplicationContextAware和BeanFactoryAware

1、實現BeanNameAware接口的Bean,在Bean加載的過程中可以獲取到該Bean的id
2、實現ApplicationContextAware接口的Bean,在Bean加載的過程中可以獲取到Spring的ApplicationContext,這個尤其重要,ApplicationContext是Spring應用上下文,從ApplicationContext中可以獲取包括任意的Bean在內的大量Spring容器內容和信息
3、實現BeanFactoryAware接口的Bean,在Bean加載的過程中可以獲取到加載該Bean的BeanFactory

FactoryBean

BeanPostProcessor

BeanPostProcess接口有兩個方法,都可以見名知意:
1、postProcessBeforeInitialization:在初始化Bean之前
2、postProcessAfterInitialization:在初始化Bean之後
這兩個方法是有返回值的,不要返回null,否則getBean的時候拿不到對象。
實例化bean流程

BeanFactoryPostProcessor

InstantiationAwareBeanPostProcessor

通常來講,我們不會直接實現InstantiationAwareBeanPostProcessor接口,而是會採用繼承InstantiationAwareBeanPostProcessorAdapter這個抽象類

總流程:
大致流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章