【Java面试小短文】Spring Bean生命周期的执行流程
欢迎关注
Java面试系列,不定期更新面试小短文。欢迎一键三连!
文章目录
- Spring Bean生命周期的执行流程
- 一、创建前准备阶段
- 二、创建实例阶段
- 三、依赖注入阶段
- 四、容器缓存阶段
- 五、销毁实例阶段
- Spring Bean生命周期的高清流程图
Spring Bean生命周期的执行流程
Spring生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、 依赖注入阶段、 容器缓存阶段和销毁实例阶段。
这张是Spring Bean生命周期完整流程图
一、创建前准备阶段
这个阶段主要的作用是,Bean 在开始加载之前,需要从上下文和相关配置中解析并查找 Bean 有关的扩展实现, 比如像 init-method(容器在初始化 bean 时调用的方法)、destory-method(容器在销毁 bean 时调用的方法)。 以及BeanFactoryPostProcessor 这类的 bean 加载过程中的前置和后置处理。 这些类或者配置其实是 Spring 提供给开发者,用来实现 Bean 加载过程中的扩展机制,在很多和 Spring 集成的中间件中比较常见,比如 Dubbo。
二、创建实例阶段
这个阶段主要是通过反射来创建 Bean 的实例对象,并且扫描和解析 Bean 声明的一些属性。
三、依赖注入阶段
如果被实例化的 Bean 存在依赖其他 Bean 对象的情况,则需要对这些依赖 bean 进行对象注入。比如常见的@Autowired、setter 注入等依赖注入的配置形式。 同时,在这个阶段会触发一些扩展的调用, 比如常见的扩展类 : BeanPostProcessors(用来实现 bean 初始化前后的扩展回调)、 InitializingBean(这个类有一个afterPropertiesSet(),这个在工作中也比较常见)、 BeanFactoryAware 等等。
四、容器缓存阶段
容器缓存阶段主要是把 bean 保存到容器以及 Spring 的缓存中,到了这个阶段, Bean 就可以被开发者使用了。 这个阶段涉及到的操作常见的有init-method ,这个属性配置的方法会在这个阶段调用。 以及像 BeanPostProcessors 方法中的后置处理器方法,比如:postProcessAfterInitialization也会在这个阶段触发。
五、销毁实例阶段
当 Spring 应用上下文关闭时,该上下文中的所有 bean 都会被销毁。 如果存在 Bean 实现了 DisposableBean 接口,或者配置了 destory-method 属性, 则会在这个阶段被调用。
Spring Bean生命周期的高清流程图

欢迎一键三连~
有问题请留言,大家一起探讨学习
----------------------Talk is cheap, show me the code-----------------------
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
