Spring 中 Bean 的初始化过程
时间: 2024-03-18 19:46:00 浏览: 64
详解Spring 中如何控制2个bean中的初始化顺序
5星 · 资源好评率100%
在 Spring 中,Bean 的初始化过程可以分为以下几个步骤:
1. 实例化:当 Spring 容器启动时,会调用 Bean 的构造方法或工厂方法来创建 Bean 的实例。
2. 属性赋值:在 Bean 实例化后,Spring 容器会根据配置文件或注解对 Bean 的属性进行赋值。
3. Aware 接口回调:如果 Bean 实现了 Aware 接口,Spring 容器会回调相应的方法,让 Bean 获得一些 Spring 相关的资源。
4. BeanPostProcessor 的前置处理:如果 Bean 实现了 BeanPostProcessor 接口,Spring 容器会在 Bean 的初始化前先调用它们的 postProcessBeforeInitialization 方法。
5. 初始化:在 BeanPostProcessor 的前置处理完成后,Spring 容器会调用 Bean 的初始化方法(如实现了 InitializingBean 接口的 afterPropertiesSet 方法或使用 @PostConstruct 注解标注的方法)。
6. BeanPostProcessor 的后置处理:在 Bean 的初始化完成后,Spring 容器会调用 BeanPostProcessor 的 postProcessAfterInitialization 方法。
7. DisposableBean 的销毁:当 Spring 容器关闭时,会调用实现了 DisposableBean 接口的 destroy 方法来销毁 Bean。
除了上述步骤外,Spring 还提供了很多扩展点和配置方式来对 Bean 的初始化过程进行定制化。
阅读全文