The full set of initialization methods and their standard order is:
1. BeanNameAware's setBeanName
2. BeanClassLoaderAware's setBeanClassLoader
3. BeanFactoryAware's setBeanFactory
4. ResourceLoaderAware's setResourceLoader (only applicable when running in an application context)
5. ApplicationEventPublisherAware's setApplicationEventPublisher (only applicable when running in an application context)
6. MessageSourceAware's setMessageSource (only applicable when running in an application context)
7. ApplicationContextAware's setApplicationContext (only applicable when running in an application context)
8. ServletContextAware's setServletContext (only applicable when running in a web application context)
9. postProcessBeforeInitialization methods of BeanPostProcessors
10. InitializingBean's afterPropertiesSet
11. a custom init-method definition
12. postProcessAfterInitialization methods of BeanPostProcessors
On shutdown of a bean factory, the following lifecycle methods apply:
1. DisposableBean's destroy
2. a custom destroy-method definition
分享到:
相关推荐
在Spring框架中,ApplicationContext是应用的核心,它管理着所有Bean的生命周期。本章将深入探讨Spring应用上下文的生命周期,从启动准备阶段到关闭阶段,包括各个关键步骤和相关组件的作用。 1. **Spring 应用上...
《Spring学习笔记之bean生命周期》 在Spring框架中,Bean是核心组件,它们构成了应用程序的主要结构。理解Spring Bean的生命周期对于有效地管理和优化Spring应用程序至关重要。本文将深入探讨Spring Bean的生命周期...
`ApplicationContext`还包含了`Lifecycle`接口,用于管理支持生命周期的bean,以及`ApplicationEventPublisher`接口,用于发布和处理应用事件。 在内部实现方面,Spring IoC容器涉及多个组件。`BeanDefinition`组件...
通常情况下,开发者需要在代码中自行创建对象并管理其生命周期,而使用IoC后,这些工作由Spring容器完成。例如,原本程序员需要在代码中手动创建`UserService`对象,但在Spring中,这个任务被委托给了Spring容器。 ...
可以通过`init-method`和`destroy-method`属性指定初始化和销毁方法,或者使用`Lifecycle`接口或`SmartLifecycle`接口来自定义生命周期行为。 9. **Bean的作用域** Spring Bean有多种作用域,如单例(Singleton)...
在低版本的Spring中实现类似自动配置的...同时,还需要结合生命周期回调和各种Aware接口,以实现Bean的定制和功能增强。通过这种方式,即使在没有高级特性支持的老版本Spring中,也能实现灵活的配置管理和功能扩展。
这个异常消息是说 LifecycleProcessor 对象没有初始化,在调用 context 的生命周期方法之前必须调用 refresh() 方法。这是因为LifecycleProcessor 对象是在 refresh() 方法中初始化的,如果没有调用 refresh() 方法...
- **Lifecycle callbacks**:Bean 生命周期的方法回调。 - **Properties**:Bean 的属性值。 #### 十、Bean 的作用域 1. **singleton**:每个容器中只有一个实例。 2. **prototype**:每次请求都会创建一个新的...