Spring Bean的生命周期

本文详细阐述了Spring框架中bean的生命周期过程,包括从定义到初始化的各个阶段,如BeanFactory操作、aware接口调用、postProcessor处理等,帮助理解bean初始化的内在逻辑。
摘要由CSDN通过智能技术生成

Spring中bean的生命周期在Web应用程序启动过程中,Spring容器中的每个bean也有各自的初始化顺序。一个bean,从bean definition被加载到初始化完成,按照以下顺序执行:
1. BeanFactory加载完bean definition和class,实例化除了bean对象。
2. 检查有没有实现BeanNameAware,有则调用setBeanName(得到bean id)
3. 检查有没有实现BeanClassLoaderAware,有则调用setBeanClassLoader。
4. 检查有没有实现EnvironmentAware,有则调用setEnvironment。
5. 检查有没有实现EmbeddedValueResolverAware,有则调用setEmbeddedValueResolver。
6. 检查有没有实现ResourceLoaderAware,有则调用setResourceLoader。
7. 检查有没有实现ApplicationEventPublisherAware,有则调用setApplicationEventPublisher。
8. 检查有没有实现MessageSourceAware,有则调用setMessageSource。
9. 检查有没有实现ApplicationContextAware,有则调用setApplicationContext。
10. 检查有没有实现ServletContextAware,有则调用setServletContext。
11. 调用BeanPostProcessors中的所有postProcessBeforeInitialization,对bean进行一些更进一步的配置。
12. 调用InitializingBean接口中的afterPropertiesSet执行bean自身提供的初始化代码。
13. 调用通过其他方式指定的init-method方法,执行bean自身的初始化。
14. 调用BeanPostProcessors中的所有postProcessAfterInitialization方法。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值