Spring bean生命周期配置過程解析
1.實例化bean
AbstractAutowireCapableBeanFactory類中的createBeanInstance(beanName, mbd, args);
2.為bean注入屬性
AbstractAutowireCapableBeanFactory類中的populateBean(beanName, mbd, instanceWrapper);
3.調(diào)用各種實現(xiàn)的Aware接口(BeanNameAware, BeanFactoryAware, ApplicationContextAware),調(diào)用相關的set方法
AbstractAutowireCapableBeanFactory 類中invokeAwareMethods(beanName, bean);
4.調(diào)用BeanPostProcessor的postProcessBeforeInitialization方法
AbstractAutowireCapableBeanFactory 類中applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName);
5.調(diào)用InitializingBean的afterPropertiesSet方法
AbstractAutowireCapableBeanFactory 類中invokeInitMethods(beanName, wrappedBean, mbd);
6.調(diào)用定制的init方法(xml配置的init-method方法或者@Bean(initMethod='xx') )
AbstractAutowireCapableBeanFactory 類中invokeInitMethods(beanName, wrappedBean, mbd);
7.調(diào)用BeanPostProcessor的postProcessAfterInitializarion方法
AbstractAutowireCapableBeanFactory 類中applyBeanPostProcessorsAfterInitialization(wrappedBean, beanName);
bean就準就緒了。
8.調(diào)用DisposableBean接口的destory()方法(如果bean實現(xiàn)的話)
9.調(diào)用定制destory方法(xml配置的destory-method方法或者#Bean(destory='xx'))
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. PHP中Too few arguments to function的問題及解決2. ASP.NET MVC實現(xiàn)橫向展示購物車3. AJAX實現(xiàn)JSON與XML數(shù)據(jù)交換方法詳解4. ASP中實現(xiàn)字符部位類似.NET里String對象的PadLeft和PadRight函數(shù)5. SixSix翻譯的XAML教程 語法簡介6. Vue3使用JSX的方法實例(筆記自用)7. 簡述python四種分詞工具,盤點哪個更好用?8. ASP.NET MVC擴展帶驗證的單選按鈕9. python讀取excel進行遍歷/xlrd模塊操作10. python裝飾器三種裝飾模式的簡單分析

網(wǎng)公網(wǎng)安備