描述一下Spring Bean的生命周期

这篇博客深入探讨了Spring框架中Bean的生命周期,从实例化、属性填充、调用Aware接口、BeanPostProcessor处理到初始化方法的执行,再到最终的销毁流程。重点讲解了每个阶段的关键步骤,如反射创建Bean、解决循环依赖、AOP代理的实现以及DisposableBean接口的销毁方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请添加图片描述
看图说话

  1. 实例化bean:反射的方式创建bean
  2. 填充bean属性:populateBean(),循环依赖的问题(三级缓存)
  3. 调用aware接口相关的方法:invokeAwareMethod(),完成BeanNameBeanClassLoaderBeanFactory对象的属性设置
  4. 调用BeanPostProcessor中的前置处理方法:使用比较多的有(ApplicationContextPostProcessor,设置 EnvironmentEmbeddedValueResolverResourceLoaderApplicationEventPublisherMessageSourceApplicationContextServletContext等对象)
  5. 调用initmethod方法:invokeInitmethod(),判断是否实现了initializingBean接口,如果有,调用afterPropertiesSet方法,没有就不调用
  6. 调用BeanPostProcessor的后置处理方法:spring的aop就是在此处实现的,AbstractAutoProxyCreator;注册Destuction相关的回调接口
  7. 获取到完整的对象,可以通过getBean的方式来进行对象的获取
  8. 销毁流程,1,判断是否实现了DispoableBean接口 2,调用destroyMethod()方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值