大家好,我是被编程耽搁的文艺Tom。明天能给大家介绍一下Spring Bean生命周期全过程,这道题呢也是大厂高频面试题。接下来我给大家做一个具体的剖析和解答。

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

这张图呢展现了Spring Bean生命周期残缺流程,其中对每个阶段的具体操作做了具体介绍。上面咱们来剖析一下每个阶段的细节。
先来看第一阶段。
1、创立前筹备阶段

这个阶段次要是在开始Bean加载之前,从Spring上下文和相干配置中解析并查找Bean无关的配置内容,
比方init-method-容器在初始化bean时调用的办法、destory-method,容器在销毁Bean时调用的办法。
以及,BeanFactoryPostProcessor这类的bean加载过程中的前置和后置解决。

这些类或者配置其实是Spring提供给开发者,用来实现Bean加载过程中的扩大机制,在很多和Spring集成的中间件常常应用,比方Dubbo。

2、创立实例阶段

这个阶段次要是通过反射来创立Bean的实例对象,并且扫描和解析Bean申明的一些属性。

3、依赖注入阶段

在这个阶段,会检测被实例化的Bean是否存在其余依赖,如果存在其余依赖,1就须要对这些被依赖Bean进行注入。比方通过读取

@Autowired、@Setter等依赖注入的配置。
在这个阶段还会触发一些扩大的调用,比方常见的扩大类:BeanPostProcessors(用来实现Bean初始化前后的回调)、

InitializingBean类(这个类有一个afterPropertiesSet()办法,给属性赋值)、还有BeanFactoryAware等等。

4、容器缓存阶段

容器缓存阶段次要是把Bean保留到IoC容器中缓存起来,到了这个阶段,Bean就能够被开发者应用了。

这个阶段波及到的操作,常见的有,init-method这个属性配置的办法,会在这个阶段调用。
在比方BeanPostProcessors办法中的后置处理器办法如:postProcessAfterInitialization,也是在这个阶段触发的。

5、销毁实例阶段

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

看到这里,置信大家对Spring Bean的生命周期有了粗浅的印象,须要视频中Spring Bean生
命周期的高清流程图,能够私信我。在附赠一张高清的时序图给大家!

我是被编程耽搁的文艺Tom,如果大家还有其余疑难,请在评论区留言。如果本次面试对你有帮忙,请动动手指一键三连分享给更多的人。关注我,面试不再难!

往期视频曾经整顿成文档模式,须要的小伙伴点个关注,增加下方名片!