一文搞懂Spring Bean的生命周期
Alex Chen | 2026-07-24T08:55:00 | Java, Spring Boot
从源码角度梳理Spring Bean从创建到销毁的完整生命周期,面试必考知识点
# 一文搞懂Spring Bean的生命周期 面试被问到Spring Bean的生命周期,只答出"创建-使用-销毁"三个字?那肯定挂。今天从源码角度好好梳理一遍。 ## 完整流程 1. **实例化** - `createBeanInstance()`,反射调构造方法 2. **属性填充** - `populateBean()`,依赖注入在这一步 3. **Aware接口回调** - BeanNameAware、ApplicationContextAware等 4. **BeanPostProcessor前置处理** - `postProcessBeforeInitialization()` 5. **初始化** - `@PostConstruct` -> `InitializingBean.afterPropertiesSet()` -> `init-method` 6. **BeanPostProcessor后置处理** - `postProcessAfterInitialization()`,AOP代理就在这里生成 7. **使用** 8. **销毁** - `@PreDestroy` -> `DisposableBean.destroy()` -> `destroy-method` ```java @Component public class DemoBean implements InitializingBean, DisposableBean { @PostConstruct public void postConstruct() { // 第一个执行的初始化回调 System.out.println("@PostConstruct 执行"); } @Override public void afterPropertiesSet() { // 第二个执行 System.out.println("afterPropertiesSet 执行"); } @Override public void destroy() { // 容器关闭时执行 System.out.println("destroy 执行,释放资源"); } } ``` 记住这个顺序:**构造 -> 填充 -> Aware -> BeanPostProcessor前 -> 初始化 -> BeanPostProcessor后**。面试说到这个程度,基本就稳了。