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方法。
Spring Bean的生命周期
最新推荐文章于 2024-09-06 20:17:33 发布
本文详细阐述了Spring框架中bean的生命周期过程,包括从定义到初始化的各个阶段,如BeanFactory操作、aware接口调用、postProcessor处理等,帮助理解bean初始化的内在逻辑。
摘要由CSDN通过智能技术生成