美文网首页
8.Bean生命周期

8.Bean生命周期

作者: wyh001 | 来源:发表于2023-10-01 13:31 被阅读0次

一个Bean从创建到销毁,会经过一系列的生命周期阶段,每个阶段spring都提供了方式让我们能够介入,从而可以修改bean的配置、状态和行为等。

bean构建触发时机

  1. 应用上下文启动过程中
  2. 应用上下文运行中
bean生命周期.png

完整流程

  1. InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation

  2. 实例化

  3. MergedBeanDefinitionPostProcessor#postProcessMergedBeanDefinition

    • 可以修改初始化该bean即将使用的配置元数据
  4. InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation

  5. 处理属性自动注入模式,查找依赖并填充到BeanDefinitionPropertyValues

    • 根据javabean属性元数据,找到需要自动注入的属性
    • 调用IoC容器解析依赖值
    • 将依赖值增加到PropertyValues
  6. InstantiationAwareBeanPostProcessor#postProcessProperties

    • 可以替换初始化该bean即将使用的配置元数据

    • @Autowired

    • @Value

    • @Resource

  7. Set方法注入:applyPropertyValues

    • 使用BeanDefinitionPropertyValues初始化bean属性
  8. 调用bean实现的Aware方法

    • BeanNameAware
    • BeanFactoryAware
  9. BeanPostProcessor#postProcessBeforeInitialization

    • PostConstruct
  10. 调用初始化方法

    • InitializingBean#afterPropertiesSet
    • 自定义方法
  11. BeanPostProcessor#postProcessAfterInitialization

  12. SmartInitializingSingleton#afterSingletonsInstantiated

    • 用于非延迟初始化地单例bean
  13. DisposableBeanAdapter 销毁方法适配器

    • DestructionAwareBeanPostProcessor#postProcessBeforeDestruction

      • @PreDestroy
    • DisposableBean

    • 自定义销毁方法

      • destroy()
      • close()
      • shutdown()
      • 其他

感知上下文生命周期

  1. 通过监听上下文生命周期事件

    • ContextRefreshedEvent
    • ContextClosedEvent
    • ContextStartedEvent
    • ContextStoppedEvent
  2. 实现Lifecycle接口

    提供精确控制bean服务的方式,如启动、暂停等

    • Lifecycle
    • SmartLifecycle

相关文章

  • 8.Bean的作用域

    在默认情况下,Spring应用上下文中所有的bean都是以单例的形式创建的。1.spring定义了多种作用域,可以...

  • Vue生命周期

    什么是生命周期方法?生命周期钩子=生命周期函数=生命周期事件 Vue生命周期方法分类  创建期间的生命周期方法: ...

  • Activity,Fragment,Service生命周期图

    Activity生命周期 Fragment生命周期 Service生命周期

  • 10,vue生命周期

    生命周期钩子=生命周期函数=生命周期事件 根据生命周期的不同分为三类: 创建阶段的生命周期 运行阶段的生命周期 销...

  • 微信小程序生命周期的记录

    小程序中生命周期分为3类: 应⽤的生命周期 页面的生命周期 组件的生命周期 一、生命周期 1. 应⽤的生命周期[h...

  • Lifecycle 生命周期源码解析

    目录: 什么生命周期 什么是生命周期感知型组件 Activity是如何把生命周期传给生命周期感知组件的 生命周期 ...

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • uni-app微信小程序开发 - 生命周期

    uni-app的生命周期分为应用生命周期和页面生命周期还有组件生命周期。 应用生命周期[https://uniap...

  • 【小程序】生命周期

    小程序生命周期分为两类:应用生命周期和页面生命周期。 应用生命周期 应用生命周期包括onLaunch、onShow...

  • Java基础知识整理3——Android篇

    一、activity生命周期,fragment生命周期,broadcastReceiver生命周期,service...

网友评论

      本文标题:8.Bean生命周期

      本文链接:https://www.haomeiwen.com/subject/uhujbdtx.html