回顾

Bean的完整生命周期分为四个阶段:

  1. 第一阶段:实例化阶段。
    从Bean定义的收集到BeanDefinition的入库顺序执行
    BeanDefinitionRegistryPostProcessor注册处理器,注册一些BeanDefinition
    BeanFactoryPostProcessor,对入库的BeanDefinition进行定义的修改。
    BeanWrapper的产生,BeanWrapper是Bean的早期产品。
    populateBean()执行属性的设置
    总结:此阶段是BeanDefinition->BeanWrapper ,各种属性的设置

  2. 第二阶段:初始化阶段:主要是执行各种初始化方法
    invokeAwareMethods(beanName, bean);执行Aware属性的相关设置。
    BeanPostProcessor.postProcessBeforeInitialization前置方法的执行,
    如果实现了InitializingBean.afterPropertiesSet()则执行此方法
    执行自定义的initMethod方法。
    BeanPostProcessor.postProcessBeforeInitialization后置方法的执行,

  3. 第三阶段:使用阶段
    getBean从容器的缓存中取出Bean

  4. 第四阶段:销毁阶段
    执行DisposableBean.distroy方法
    执行自定义detry-method

总结:

整个spring初始化过程可以看做是

欢迎大家关注我的公众号【源码行动】,最新个人理解及时奉送。
在这里插入图片描述
https://www.cnblogs.com/smallstudent/p/11691358.html