部署 Spring Boot 项目时,需要安装的依赖取决于你的部署方式。以下是不同场景下的必要依赖清单:
✅ 一、通用基础依赖(几乎所有场景都需要)
1. JDK(Java Development Kit)
- 版本要求:Spring Boot 2.x → JDK 8/11;Spring Boot 3.x → JDK 17+
- 推荐安装 OpenJDK 或 Oracle JDK
- 验证命令:
java -version javac -version
⚠️ Spring Boot 内置 Tomcat,不需要单独安装 Tomcat/Jetty 等应用服务器(除非你使用 WAR 包部署到外部容器)。
✅ 二、按部署方式分类的额外依赖
🟢 场景 1:JAR 包直接运行(最常见)
java -jar myapp.jar
仅需:
- ✅ JDK(运行时即可,无需
javac)
Spring Boot 打包为可执行 JAR,内嵌 Web 服务器,无需其他中间件。
🟡 场景 2:WAR 包部署到外部 Servlet 容器(如 Tomcat)
# 将 myapp.war 放入 $CATALINA_HOME/webapps/
需要:
- ✅ JDK
- ✅ Tomcat / Jetty / Undertow 等 Servlet 容器
- ✅ 确保 Spring Boot 配置为
packaging=war,并排除内嵌容器
🔵 场景 3:Docker 容器化部署
FROM openjdk:17-jdk-slim
COPY target/myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
需要:
- ✅ Docker Engine
- ✅ JDK(在镜像中提供)
- ✅ Docker Compose(可选,用于多服务编排)
🟣 场景 4:云原生 / Kubernetes 部署
需要:
- ✅ Kubectl + Kubernetes 集群
- ✅ Docker 或 containerd(构建镜像)
- ✅ Helm(可选,用于包管理)
- ✅ CI/CD 工具(如 Jenkins、GitLab CI、GitHub Actions)
✅ 三、生产环境常见附加组件(非必须但推荐)
| 组件 | 用途 | 是否必需 |
|---|---|---|
| Nginx / Apache | 反向X_X、负载均衡、静态资源托管 | ❌ 可选 |
| Redis | 缓存、会话共享 | ❌ 取决于业务 |
| MySQL / PostgreSQL | 数据库存储 | ❌ 取决于业务 |
| RabbitMQ / Kafka | 消息队列 | ❌ 取决于业务 |
| ELK / Prometheus + Grafana | 日志监控与告警 | ❌ 可选 |
| SSL 证书(Let’s Encrypt) | HTTPS 加密 | ❌ 推荐用于生产 |
✅ 四、快速检查清单
- [ ] JDK 已安装且版本匹配 Spring Boot 要求
- [ ] 防火墙开放对应端口(默认 8080)
- [ ] 环境变量配置正确(如 SPRING_PROFILES_ACTIVE)
- [ ] 数据库连接信息已配置(application.yml / application.properties)
- [ ] (可选)Nginx 反向X_X已配置
- [ ] (可选)监控日志系统已接入
📌 总结
| 部署方式 | 最小依赖 |
|---|---|
| JAR 直接运行 | JDK |
| WAR 外部容器 | JDK + Tomcat/Jetty |
| Docker | Docker + JDK(镜像内) |
| K8s | K8s + Docker/containerd + JDK |
💡 最佳实践:大多数现代 Spring Boot 项目采用 JAR + Docker + Kubernetes 的组合,只需关注 JDK 和容器化基础设施即可。
如有具体部署场景,可以提供更多细节,我可以给出更精准的依赖清单。
ECLOUD博客