"小崔问白歌:'咱们这系统怎么部署到测试机?还要装 Tomcat 吗?'白歌说:'不用,Spring Boot 自带了,打包完一个 JAR 文件丢上去,java -jar 就能跑。'这一章,你将理解 Spring Boot 内嵌服务器与 Fat JAR 的部署哲学,掌握应用自包含的运维能力。"
章节导读:内嵌服务器与部署
本章定位
本章解决的核心问题:Spring Boot 应用如何摆脱外部 Servlet 容器的束缚,将应用与服务器打包为单一可执行单元,实现"一次构建,到处运行"的部署体验。
学习路线图
学习顺序说明:先理解内嵌 Tomcat/Jetty/Undertow 的启动原理和 server.port 配置,掌握应用自包含的服务器能力;再深入 Fat JAR 的 BOOT-INF 结构、JarLauncher 加载机制,以及 spring-boot-maven-plugin 的打包过程。两者共同构成 Spring Boot "独立部署"的核心闭环。
文件关系说明
| 文件 | 一句话角色 |
|---|---|
内嵌服务器.md | Spring Boot 内嵌 Tomcat/Jetty/Undertow 的启动原理、端口配置与容器切换指南。 |
Fat_Jar.md | Spring Boot 可执行 JAR 的内部结构、JarLauncher 加载流程与 Maven 打包配置详解。 |
知识图谱
核心逻辑:Spring Boot 应用通过 spring-boot-maven-plugin 打包为 Fat JAR,内部以 BOOT-INF 隔离业务代码与依赖;启动时由 JarLauncher 创建自定义类加载器,加载内嵌服务器(默认 Tomcat)并随 Spring 容器一同启动。开发者只需 server.port 一行配置,即可完成传统 SSM 需要修改 server.xml + 部署 WAR 的整套操作。
与上下章的衔接
上一章回顾:你已经掌握了 Profile 多环境切换,可以针对不同环境配置不同的服务器端口和参数。
下一章预告:应用运行起来后,如何知道它健不健康?如何监控它的运行状态?下一章「Actuator 与监控」将带你解锁 Spring Boot 的生产级运维能力——健康检查、运行时指标、自定义运维端点,让你的应用从"能跑"升级到"可观测"。