大厂面试题-Spring Bean生命周期的执行流程

目录

问题解答

1.创建前准备阶段【干什么、作用】

2.创建实例阶段

3.依赖注入阶段

4.容器缓存阶段

5.销毁实例阶段


问题解答

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

这张是Spring Bean生命周期完整流程图,其中对每个阶段的具体操作做了详细介绍:

1.创建前准备阶段【干什么、作用】

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

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

类或者配置其实是Spring提供给开发者,用来实现Bean加载过程中的扩展机制,在很多和Spring集成的中间件中比较常见,比如Dubbo

2.创建实例阶段

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

3.依赖注入阶段

如果被实例化的Bean存在依赖其他Bean对象的情况,则需要对这些依赖bean进行对象注入。比如常见的`@Autowired`、setter注入等依赖注入的配置形式。

同时,在个阶段会触发一些扩展的调用,比如常见的扩展类:BeanPostProcessors (用来实现bean初始化前后的扩展回调)、InitializingBean(这个类有一个afterPropertiesSet(),这个在工作中也比较常见)、BeanFactoryAware等等。

4.容器缓存阶段

容器缓存阶段主要是把bean保存到容器以及Spring的缓存中,到了这个阶段,Bean就可以被开发者使用了。

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

以及像BeanPostProcessors方法中的后置处理器方法如:postProcessAfterInitialization,也会在这个阶段触发。

5.销毁实例阶段

当Spring应用上下文关闭时,该上下文中的所有bean都会被销毁。

如果存Bean实现了DisposableBean接口,或者配置了`destory-method`属性,会这个阶段被调用。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值