• Spring Bean的生命周期理解


    一、Spring Bean的生命周期大的概括起来有四个阶段:
    1、实例化
    2、属性填充注入
    3、初始化使用
    4、Bean的销毁

    二、如流程图所示

    三、步骤说明

    1、实例化
    实例化一个Bean,即new

    2、IOC依赖注入
    按照Spring上下文对实例化的Bean进行属性填充注入

    3、setBeanName实现
    如果这个Bean已经实现了 BeanNameAware 接口,就会调用它实现的setBeanName(String)方法,此处传递的是Spring配置文件中Bean的id值

    4、setBeanFactory实现
    如果这个Bean实现了 BeanFactoryAware 接口,会调用它实现的setBeanFactory(BeanFactory)方法,传递的是Spring工厂对象自身

    5、setApplicationContext实现
    如果这个Bean实现了 ApplicationContextAware 接口,会调用它实现的setApplicationContext(ApplicationContext)方法,传递的是Spring的应用程序上下文对象

    6、postProcessBeforeInitialization实现-初始化预处理
    如果这个Bean实现了 BeanPostProcessor 接口,将会调用它实现的postProcessBeforeInitialization(Object obj,String s)方法。BeanPostProcessor被用作Bean内容修改,并且由于这个是在Bean初始化结束的时候调用的这个方法

    7、init-method
    如果这个bean在Spring配置文件中配置了init-method属性,会调用其配置的初始化方法

    8、postProcessAfterInitialization
    如果这个Bean实现了 BeanPostProcessor 接口,将会调用它实现的postProcessAfterInitialization(Object obj,String s)方法

    9、Destory过期自动清理
    当Bean不再需要时,如果这个Bean实现了 DisposableBean 这个接口,会调用其实现的destory()方法

    10、destory-method
    如果这个bean在Spring配置文件中配置了 destory-method 属性,会调用其配置的销毁方法

    四、总结
    1、实例化之前做加载class文件、xml、yml等信息做准备
    2、实例化阶段完成属性填充注入
    3、初始化阶段做一系列实现接口初始动作,获取完整的对象并使用
    4、销毁阶段执行 destory() 方发,销毁Bean

  • 相关阅读:
    Python之函数详解
    Redis持久化与一致性解决方案「面试必问」
    初识类和对象
    宝塔服务器之堡塔应用管理器的使用【php消息队列】
    设备全生命周期管理第一股凌雄科技上市,京东、腾讯等长期看好
    知物由学 | 自监督学习助力内容风控效果提升
    『现学现忘』Git分支 — 41、分支基本操作(二)
    C++之IO流
    go-cqhttp环境配置
    智能AI知识库,增强AI知识的开源项目
  • 原文地址:https://blog.csdn.net/hkl_Forever/article/details/128130573