SpringBoot:全套生命周期全景详解/应用级+Bean级

发布时间:2026/9/27 22:21:11

SpringBoot:全套生命周期全景详解/应用级+Bean级 SpringBoot 生命周期分为两大核心体系SpringBoot 应用启动生命周期全局容器启动流程、Spring Bean 生命周期单个对象创建销毁流程。日常开发、面试高频考察本文全程阶段拆解、配套钩子、注解、执行顺序与避坑点全景梳理无遗漏。一、核心概念区分必懂很多开发者容易混淆两个生命周期二者层级完全不同应用级生命周期整个 SpringBoot 项目从启动初始化 → 容器就绪 → 运行中 → 停止销毁的全局流程控制整个项目的启动与销毁。Bean级生命周期Spring 容器中单个 Bean 对象从实例化、属性填充、初始化到销毁的完整流程只针对单个业务对象。二、SpringBoot 应用全局生命周期7大核心阶段SpringBoot 启动全程由SpringApplication驱动通过SpringApplicationRunListener监听7个固定生命周期阶段贯穿项目启动到运行、失败全流程。应用生命周期完整阶段清单阶段触发时机核心作用常用扩展方式starting项目刚启动容器未初始化最早期启动回调可做启动日志、全局初始化标记自定义 RunListenerenvironmentPrepared环境变量、配置文件加载完成上下文未创建读取/修改配置、激活环境、配置加密解密EnvironmentPostProcessorcontextPreparedSpring 上下文创建完成未加载 Bean上下文前置预处理注册工具类、前置组件ApplicationContextInitializercontextLoaded所有 Bean 加载完成未刷新容器Bean 加载后、容器刷新前的自定义处理自定义监听器started容器刷新完成、内嵌服务器启动完毕项目启动成功启动成功后执行业务初始化初始化缓存、定时任务ApplicationRunner / CommandLineRunnerrunning项目完全就绪对外提供服务常驻运行接收客户端请求无自定义扩展系统自动维持failed项目启动异常终止异常日志记录、告警、资源兜底释放自定义失败监听器应用启动关键扩展接口执行顺序面试高频启动优先级从早到晚环境预处理 → 上下文初始化 → Bean加载 → 启动后置执行1、EnvironmentPostProcessor最早修改配置环境2、ApplicationContextInitializer上下文初始化3、Bean 生命周期全程所有 Bean 实例化、初始化4、ApplicationRunner/CommandLineRunner启动成功最后执行三、Spring Bean 完整生命周期9步标准流程SpringBoot 完全沿用 Spring IoC 的 Bean 生命周期是开发中最常用、最核心的生命周期包含实例化、属性填充、Aware 回调、前置后置处理、初始化、销毁全流程。Bean 生命周期标准执行顺序扫描解析 → 实例化 → 属性填充 → Aware接口 → 前置处理 → 初始化 → 后置处理 → 就绪使用 → 销毁阶段执行内容对应注解/接口核心用途1. 扫描解析Spring 扫描 Component/Bean生成 BeanDefinition无确定需要管理的 Bean2. 实例化通过反射调用构造方法创建对象无生成空对象实例3. 属性填充自动装配、Value、依赖注入赋值Autowired、Value给 Bean 注入属性与依赖4. Aware 接口回调依次回调各类 Aware 感知方法BeanNameAware、BeanFactoryAware、ApplicationContextAware让 Bean 感知自身名称、工厂、上下文5. 前置初始化处理BeanPostProcessor 前置处理BeanPostProcessor.before初始化前统一增强处理6. 初始化方法执行优先级注解 接口 配置初始化PostConstruct → InitializingBean → init-methodBean 自定义初始化逻辑7. 后置初始化处理BeanPostProcessor 后置处理AOP 代理在此生成BeanPostProcessor.afterBean 增强、代理生成核心阶段8. 就绪可用Bean 完成所有流程放入单例池对外提供服务无业务正常调用9. 销毁项目关闭时执行销毁逻辑PreDestroy → DisposableBean → destroy-method释放连接、关闭线程、清空资源初始化/销毁 优先级必考重点初始化优先级从高到低 PostConstruct 注解 InitializingBean 接口 xml/注解指定 init-method销毁优先级从高到低 PreDestroy 注解 DisposableBean 接口 xml/注解指定 destroy-method四、Web 专属生命周期Servlet 三大组件SpringBoot Web 项目额外包含 Servlet 原生生命周期针对请求、会话、上下文层级管理。1. ServletContext 生命周期全局项目级服务器启动初始化 → 运行常驻 → 服务器关闭销毁2. Session 生命周期用户会话级用户首次访问创建 → 会话存续 → 超时/主动销毁3. Request 生命周期单次请求级请求进入创建 → 业务处理 → 响应结束立即销毁五、四大生命周期全景汇总表极简记忆版生命周期类型管理范围核心阶段开发常用钩子SpringBoot 应用生命周期整个项目启动→环境准备→容器准备→Bean加载→启动完成→运行→失败ApplicationRunner、RunListenerSpring Bean 生命周期单个 Bean 对象实例化→赋值→感知→初始化→使用→销毁PostConstruct、PreDestroyServletContext 生命周期全局 Web 容器容器启动初始化、全局销毁ServletContextListenerRequest/Session 生命周期请求/用户会话创建、存续、销毁过滤器、拦截器六、高频开发与面试总结SpringBoot 最核心的两个生命周期应用启动生命周期 Bean 生命周期其余为 Web 场景扩展。Bean 初始化首选注解优先使用PostConstruct简洁无侵入适配 SpringBoot 开发规范。资源释放首选PreDestroy用于关闭连接池、定时器、线程池等资源。项目启动后置任务使用ApplicationRunner优先级高于CommandLineRunner。AOP 代理时机发生在 Bean 初始化后置处理阶段BeanPostProcessor 之后。
延伸阅读

更多相关文章

2026/9/27 7:10:39

AI Agent基础设施:从LLM到生产级应用的核心工程架构

1. 项目概述:为什么说AI Agent的终局在基础设施?最近和几个做AI应用落地的朋友聊天,大家都有一个共同的感受:模型能力日新月异,但真要把一个AI Agent从Demo变成能7x24小时稳定服务、能处理复杂业务流程、能安全合规上线…

2026/9/19 17:51:36

Havenlon | 杂谈:MVP 之后:AI 时代,一个产品需要五次证明

当制造变得廉价,唯一昂贵的东西,就只剩下现实本身。导语:一条被松动的常识过去二十年,创业世界里有一条几乎无人质疑的常识——不要一开始就把产品做完整,先做一个最小可行产品(MVP)&#xff0c…

2026/9/27 22:16:58

3个方案对比评测:WordPress自动识别网页,小白也能搞定的建站实录

3个方案对比评测:WordPress自动识别网页,小白也能搞定的建站实录 想做网站却完全不懂代码?别慌,我也是从这坑里爬出来的。很多人以为搞个自动识别功能的网站必须找外包,报价还得好几万。其实,只要选对工具,自己就能搞定。今天咱们不整虚的,…

2026/9/27 22:16:58

建筑工程网上备案流程完整流程详解

建筑工程网上备案流程完整流程详解 昨天半夜被电话叫醒,运维群炸了,说公司官网突然满屏乱码,还挂着非法广告。点开一看,后台日志全是陌生的IP在疯狂扫端口,服务器被植入了后门脚本。那一刻我才真切身体会到, 网站被黑挂马不知道怎么办…

2026/9/27 22:16:58

Cursor入门教程:JetBrains老用户迁移配置与TaoToken接入指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 22:16:58

西安网站制作一般多少钱?从零搭建避坑全解析

西安网站制作一般多少钱?从零搭建避坑全解析 很多刚接手项目的朋友,一听到“建站”俩字就头大,特别是面对那套繁琐的 备案流程一头雾水 。不知道材料怎么填,不知道服务器选哪家,更不知道找外包到底该花多少冤枉钱。其实,想搞清楚…

2026/9/27 22:16:58

(免费领源码)基于SpringBoot和Vue的校园图书馆系统设计与实现-‑ 计算机毕设 JAVA、PHP、python、数据集、APP、小程序、C# C++、单片机、网络工程、大数据、全套文案

一.课题的背景及意义随着信息技术的持续发展,数字化与智能化转型已成为现代教育服务机构提升管理与服务效能的重要途径。校园图书馆作为高校的知识核心与学术支持中心,传统依赖人工登记与管理的模式逐渐暴露出诸多局限性。信息查询不便、资源…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:45

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑