【对线面试官】SpringBean生命周期_SpringBean【对线面试官】SpringBean生命周期_SpringBean_02【对线面试官】SpringBean生命周期_SpringBean_03【对线面试官】SpringBean生命周期_SpringBean_04【对线面试官】SpringBean生命周期_SpringBean_05【对线面试官】SpringBean生命周期_SpringBean_06【对线面试官】SpringBean生命周期_SpringBean_07【对线面试官】SpringBean生命周期_SpringBean_08【对线面试官】SpringBean生命周期_SpringBean_09【对线面试官】SpringBean生命周期_SpringBean_10【对线面试官】SpringBean生命周期_SpringBean_11【对线面试官】SpringBean生命周期_SpringBean_12【对线面试官】SpringBean生命周期_SpringBean_13【对线面试官】SpringBean生命周期_SpringBean_14【对线面试官】SpringBean生命周期_SpringBean_15【对线面试官】SpringBean生命周期_SpringBean_16【对线面试官】SpringBean生命周期_SpringBean_17【对线面试官】SpringBean生命周期_SpringBean_18【对线面试官】SpringBean生命周期_SpringBean_19【对线面试官】SpringBean生命周期_SpringBean_20【对线面试官】SpringBean生命周期_SpringBean_21【对线面试官】SpringBean生命周期_SpringBean_22【对线面试官】SpringBean生命周期_SpringBean_23【对线面试官】SpringBean生命周期_SpringBean_24【对线面试官】SpringBean生命周期_SpringBean_25【对线面试官】SpringBean生命周期_SpringBean_26

关键源码方法(强烈建议自己去撸一遍)

  • 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)(初始化入口)

去网上看博客的时候,找到了几张比较好的图,这里贴下方便大家理解吧~

【对线面试官】SpringBean生命周期_SpringBean_27【对线面试官】SpringBean生命周期_SpringBean_28【对线面试官】SpringBean生命周期_SpringBean_29来源:https://www.jianshu.com/p/6c359768b1dc

- END -

我把Spring AOP和IOC的知识点都整理成思维导图了

【对线面试官】SpringBean生命周期_SpringBean_30