Spring学习笔记:Spring Bean的生命周期

2021-02-24  本文已影响0人  大力papa

本文仅供学习交流使用,侵权必删。
不作商业用途,转载请注明出处

Spring Bean生命周期细分为以下阶段:


Spring Bean生命周期

我将Bean的生命周期理解为由两个主要过程组成:创建过程以及销毁过程。

源码阅读

Bean创建过程

Bean创建过程的代码入口在AbstractAutowireCapableBeanFactory的createBean方法。

Bean实例化过程

实例化前阶段

实例化阶段

实例化后阶段

Bean赋值阶段

赋值前阶段

赋值阶段

populateBean中的applyPropertyValues是Bean的赋值阶段操作核心方法,这里是将BeanDefinition中的PropertyValue赋值给Bean实例

Bean初始化阶段

AbstractAutowireCapableBeanFactory的initializeBean方法是Bean初始化阶段的入口invokeAwareMethods

Aware接口回调

Bean初始化前阶段

Bean初始化阶段

invokeInitMethods

Bean初始化后阶段

Bean初始化完成阶段

Bean销毁阶段

Bean的销毁方法可以通过容器关闭的方法一步步进入到里面看到,单例Bean的销毁过程主要在DisposableBeanAdapter类的destroy方法中执行,在DefaultSingletonBeanRegistry(AbstractBeanFactory的父类)中会有一个集合存放这这些DisposableBeanAdapter,每个Bean对应一个DisposableBeanAdapter实例

Bean销毁前阶段

Bean销毁阶段

总结

Bean的生命周期主要分为创建过程销毁过程。创建又分为实例化前置阶段、实例化阶段、实例化后置阶段、赋值前置阶段、赋值阶段、初始化前置阶段、初始化阶段、初始化后置阶段、初始化完成阶段。销毁又分为销毁前置阶段以及销毁阶段
Bean的生命周期设计里面,Spring开发人员留了多个扩展接口让用户能干预Bean创建和销毁。但是需要注意的是开发人员要了解每个扩展接口的执行顺序以及里面的一些代码细节,才能更好地使用这些扩展接口在日常开发上。

上一篇 下一篇

猜你喜欢

热点阅读