北京某大公司:SpringBean生命週期

Java3y發表於2021-06-30

《對線面試官》系列目前已經連載25篇啦!有深度風趣的系列!

關鍵原始碼方法(強烈建議自己去擼一遍)

  • org.springframework.context.support.AbstractApplicationContext#refresh(入口)
  • org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization(初始化單例物件入口)
  • org.springframework.beans.factory.config.ConfigurableListableBeanFactory#preInstantiateSingletons(初始化單例物件入口)
  • org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String)(萬惡之源,獲取並建立Bean的入口)
  • org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean(實際的獲取並建立Bean的實現)
  • org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton(java.lang.String)(從快取中嘗試獲取)
  • org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])(例項化Bean)
  • org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean(例項化Bean具體實現)
  • org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance(具體例項化過程)
  • org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#addSingletonFactory(將例項化後的Bean新增到三級快取)
  • org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean(例項化後屬性注入)
  • org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)(初始化入口)

去網上看部落格的時候,找到了幾張比較好的圖,這裡貼下方便大家理解吧~

來源:https://www.jianshu.com/p/6c359768b1dc

歡迎關注我的微信公眾號【Java3y】來聊聊Java面試

北京某大公司:SpringBean生命週期

【對線面試官】系列 一週兩篇持續更新中!