轉帖|行業資訊|編輯:郝浩|2016-02-23 13:50:35.000|閱讀 453 次
概述:BeanFactory是IOC容器最重要的接口之一,本文介紹了BeanFactory的創建過程。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Bean的解析和登記流程時序圖如下:
創建好BeanFactory后,接下去添加一些Spring本身需要的一些工具類,這個操作在AbstractApplicationContext的prepareBeanFactory方法完成。
AbstractApplicationContext中接下來的三行代碼對Spring的功能擴展性起了至關重要的作用。前兩行主要是讓你現在可以對已經構建的BeanFactory的配置做修改,后面一行就是讓你可以對以后再 創建Bean的實例對象時添加一些自定義的操作。所以他們都是擴展了Spring的功能,所以我們要學習使用Spring必須對這一部分搞清楚。
其中在invokeBeanFactoryPostProcessors方法中主要是獲取實現BeanFactoryPostProcessor接口的子類。并執行它的postProcessBeanFactory方法,這個方法的聲明如下:
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
它的參數是beanFactory,說明可以對beanFactory做修改,這里注意這個beanFactory是ConfigurableListableBeanFactory類型的,這也印證了前面介紹的不同BeanFactory所使用的場合不同,這里 只能是可配置的BeanFactory,防止一些數據被用戶隨意修改。
registerBeanPostProcessors方法也是可以獲取用戶定義的實現了BeanPostProcessor接口的子類,并執行把它們注冊到BeanFactory對象中的beanPostProcessors變量中。BeanPostProcessor中聲明 了兩個方法:postProcessBeforeInitialization、postProcessAfterInitialization分別用于在Bean對象初始化時執行。可以執行用戶自定義的操作。
后面的幾行代碼是初始化監聽事件和對系統的其他監聽者的注冊,監聽者必須是ApplicationListener的子類。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn