大厂面试题-Spring Bean的生命周期全过程

目录

简介

一、创建前准备阶段

二、创建实例阶段

三、依赖注入阶段

四、容器缓存阶段

五、销毁实例阶段


简介

Spring生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、依赖注入阶段、容器缓存阶段和销毁实例阶段。

这张图呢展示了Spring Bean生命周期完整流程,其中对每个阶段的具体操作做了详细介绍。下面我们来分析一下每个阶段的细节。

一、创建前准备阶段

这个阶段主要是在开始Bean加载之前,从Spring上下文和相关配置中解析并查找Bean有关的配置内容,比如init-method-容器在初始化bean时调用的方法、destory-method,容器在销毁Bean时调用的方法。

以及,BeanFactoryPostProcessor这类的bean加载过程中的前置和后置处理。

这些类或者配置其实是Spring提供给开发者,用来实现Bean加载过程中的扩展机制,

在很多和Spring集成的中间件经常使用,比如Dubbo。

二、创建实例阶段

这个阶段主要是通反射来创建Bean的实例对象,并且扫描和解析Bean声明的一些性。

三、依赖注入阶段

在这阶段,会检测被实例化的Bean是否存在其他依赖,如果存在其他依赖,1就需要对这些被依赖Bean进行注入。比如通过读取@Autowired、@Setter等依赖注入的配置。

在这个阶段还会触发一些扩展的调用,比如常见的扩展类:BeanPostProcessors(用来实现Bean始化前后的回调)、InitializingBean类(这个类有一个afterPropertiesSet()方法,给属性赋值)、还有BeanFactoryAware等等。

四、容器缓存阶

器缓存阶段主要是把Bean保存到IoC容器中缓存起来,到了这个阶段,Bean就可被开发者使用了。

这个阶段涉及到的操作,常见的有,init-method这个属性配置的方法,会在这个阶段调用

在比如BeanPostProcessors方法中的后置处理器方法如:

postProcessAfterInitialization,也是在这个阶段触发的。

五、销毁实例阶段

这个阶段,是完成Spring应用上下文关闭时,将销毁Spring上下文中所有的Bean如果Bean实现了DisposableBean接口,或者配置了destory-method属性,将会在这个阶段被调用。

看到这里,相信大家对Spring Bean的生命周期有了深刻的印象,Spring Bean生命周的高清流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值