Bean生命周期的几个关键时机

本文探讨了Spring中Bean生命周期的几个关键时机,包括单例Bean的非延迟加载、构造函数的调用时刻以及InitializingBean的afterPropertiesSet方法何时执行。关键时机点集中在AbstractApplicationContext的refresh方法中,此方法对Spring IoC容器初始化至关重要。

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

目录

1. Bean生命周期的几个关键时机点

2. 参考资料


1. Bean生命周期的几个关键时机点

(1)分析 Bean 的创建是在容器初始化时还是在 getBean 时
单例模式的bean默认是非延迟加载,打断点后在applicationContext容器中可以看到bean对象实例(在调用getBean()方法前,就可以看到容器中存在的该bean对象实例)

(2)分析构造函数调用情况
容器实例化bean时,调用bean的构造方法的时机是在AbstractApplicationContext类refresh方法的finishBeanFactoryInitialization(beanFactory)处。

(3)分析 InitializingBean 之 afterPropertiesSet 初始化方法调用情况
通过如上观察,我们发现 InitializingBean中afterPropertiesSet 方法的调用时机也是在
AbstractApplicationContext类refresh方法的finishBeanFactoryInitialization(beanFactory);

总结:
    根据上面的调试分析,我们发现 Bean对象创建的几个关键时机点代码层级的调用都在
AbstractApplicationContext 类 的 refresh 方法中,可见这个方法对于Spring IoC 容器初始化来说相当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值