
按执行顺序分为 5 大阶段实例化 → 依赖注入 → 初始化 → 就绪使用 → 销毁下面是完整详细流程一、完整执行流程11步实例化InstantiationSpring 通过反射创建 Bean 对象此时对象已存在但属性为空。填充属性依赖注入 Populate properties自动装配 Autowired、Resource、XML 配置的属性完成依赖注入。执行 Aware 接口回调依次执行◦ BeanNameAware.setBeanName()◦ BeanFactoryAware.setBeanFactory()◦ ApplicationContextAware.setApplicationContext()Bean 前置处理BeanPostProcessor 前置postProcessBeforeInitialization()可对 Bean 做前置增强。执行 InitializingBean 接口重写 afterPropertiesSet() 方法完成自定义初始化逻辑。执行 PostConstruct 注解方法标注 PostConstruct 的方法执行。执行 XML 或 Bean 指定的 init-method配置的初始化方法。Bean 后置处理BeanPostProcessor 后置postProcessAfterInitialization()可做 AOP 代理、动态增强。Bean 就绪就绪可用放入单例池供业务使用。容器关闭时执行销毁方法顺序◦ PreDestroy◦ DisposableBean.destroy()◦ XML / Bean 指定的 destroy-methodBean 销毁完成二、初始化执行优先级重点考点PostConstruct InitializingBean init-method三、销毁执行优先级PreDestroy DisposableBean destroy-method四、一句话总结实例化 → 依赖注入 → Aware → 前置后置处理器 → 初始化 → 使用 → 销毁