《对线面试官》系列目前已经连载25篇啦!有深度风趣的系列!

    【对线面试官】Spring对Bean的生命周期管理 - 图1

    【对线面试官】Spring对Bean的生命周期管理 - 图2

    【对线面试官】Spring对Bean的生命周期管理 - 图3

    【对线面试官】Spring对Bean的生命周期管理 - 图4

    【对线面试官】Spring对Bean的生命周期管理 - 图5

    【对线面试官】Spring对Bean的生命周期管理 - 图6

    【对线面试官】Spring对Bean的生命周期管理 - 图7

    【对线面试官】Spring对Bean的生命周期管理 - 图8

    【对线面试官】Spring对Bean的生命周期管理 - 图9

    【对线面试官】Spring对Bean的生命周期管理 - 图10

    【对线面试官】Spring对Bean的生命周期管理 - 图11

    【对线面试官】Spring对Bean的生命周期管理 - 图12

    【对线面试官】Spring对Bean的生命周期管理 - 图13

    【对线面试官】Spring对Bean的生命周期管理 - 图14

    【对线面试官】Spring对Bean的生命周期管理 - 图15

    【对线面试官】Spring对Bean的生命周期管理 - 图16

    【对线面试官】Spring对Bean的生命周期管理 - 图17

    【对线面试官】Spring对Bean的生命周期管理 - 图18

    【对线面试官】Spring对Bean的生命周期管理 - 图19

    【对线面试官】Spring对Bean的生命周期管理 - 图20

    【对线面试官】Spring对Bean的生命周期管理 - 图21

    【对线面试官】Spring对Bean的生命周期管理 - 图22

    【对线面试官】Spring对Bean的生命周期管理 - 图23

    【对线面试官】Spring对Bean的生命周期管理 - 图24

    【对线面试官】Spring对Bean的生命周期管理 - 图25

    【对线面试官】Spring对Bean的生命周期管理 - 图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)(初始化入口)

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

    【对线面试官】Spring对Bean的生命周期管理 - 图27

    【对线面试官】Spring对Bean的生命周期管理 - 图28

    【对线面试官】Spring对Bean的生命周期管理 - 图29