Spring bean生命周期配置過程解析
1.實例化bean
AbstractAutowireCapableBeanFactory類中的createBeanInstance(beanName, mbd, args);
2.為bean注入屬性
AbstractAutowireCapableBeanFactory類中的populateBean(beanName, mbd, instanceWrapper);
3.調用各種實現的Aware接口(BeanNameAware, BeanFactoryAware, ApplicationContextAware),調用相關的set方法
AbstractAutowireCapableBeanFactory 類中invokeAwareMethods(beanName, bean);
4.調用BeanPostProcessor的postProcessBeforeInitialization方法
AbstractAutowireCapableBeanFactory 類中applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName);
5.調用InitializingBean的afterPropertiesSet方法
AbstractAutowireCapableBeanFactory 類中invokeInitMethods(beanName, wrappedBean, mbd);
6.調用定制的init方法(xml配置的init-method方法或者@Bean(initMethod='xx') )
AbstractAutowireCapableBeanFactory 類中invokeInitMethods(beanName, wrappedBean, mbd);
7.調用BeanPostProcessor的postProcessAfterInitializarion方法
AbstractAutowireCapableBeanFactory 類中applyBeanPostProcessorsAfterInitialization(wrappedBean, beanName);
bean就準就緒了。
8.調用DisposableBean接口的destory()方法(如果bean實現的話)
9.調用定制destory方法(xml配置的destory-method方法或者#Bean(destory='xx'))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. Java發送http請求的示例(get與post方法請求)2. JS繪圖Flot如何實現動態可刷新曲線圖3. springboot基于Redis發布訂閱集群下WebSocket的解決方案4. 關于探究python中sys.argv時遇到的問題詳解5. 基于android studio的layout的xml文件的創建方式6. CSS自定義滾動條樣式案例詳解7. 使用ProcessBuilder調用外部命令,并返回大量結果8. Intellij IDEA官方最完美編程字體Mono使用9. python使用requests庫爬取拉勾網招聘信息的實現10. IDEA項目的依賴(pom.xml文件)導入問題及解決
