运行一个 Spring Boot 项目在服务器上,通常需要安装以下依赖和环境组件。具体需求取决于你的项目配置(如打包方式、数据库、缓存等),但以下是通用的核心依赖:
✅ 1. Java 运行环境(JRE)或 Java 开发工具包(JDK)
- Spring Boot 是基于 Java 的框架,必须安装 Java。
- 推荐版本:根据你的 Spring Boot 版本选择对应的 Java 版本。
| Spring Boot 版本 | 推荐 Java 版本 |
|---|---|
| Spring Boot 3.x | Java 17 或更高 |
| Spring Boot 2.7+ | Java 8, 11, 17 |
| Spring Boot 2.5~2.6 | Java 8, 11 |
建议安装 JDK(即使只运行,也便于调试),可以从 Oracle 或使用开源版本如 OpenJDK。
# 检查 Java 是否安装
java -version
✅ 2. Spring Boot 应用本身(打包后的 JAR 文件)
- Spring Boot 推荐打包为 可执行 JAR 文件(内置 Tomcat/Jetty/Undertow)。
- 不需要额外安装 Web 服务器(如 Tomcat)。
# 启动命令示例
java -jar your-app.jar
✅ 3. 操作系统支持
- 支持主流 Linux 发行版(Ubuntu、CentOS、Debian 等)、macOS、Windows。
- 生产环境推荐使用 Linux。
✅ 4. 其他可能需要的依赖(按需安装)
🔹 数据库(如果你的应用连接数据库)
- MySQL / PostgreSQL / Oracle / SQL Server 等
- 安装并启动数据库服务,确保网络可访问
# 示例 application.yml 配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
🔹 Redis(用于缓存、Session 管理等)
# Ubuntu 安装 Redis
sudo apt install redis-server
🔹 RabbitMQ / Kafka(消息队列)
- 如果项目使用异步消息通信,需安装对应中间件。
🔹 Nginx(反向,可选)
- 用于负载均衡、静态资源托管、HTTPS 终止等。
# Nginx 配置示例
location / {
proxy_pass http://localhost:8080;
}
🔹 Node.js / npm(仅当项目包含前端构建时)
- 如果你使用
npm run build构建前端资源,才需要。 - 大多数 Spring Boot 项目将前端打包后嵌入 JAR,无需 Node.js 在服务器运行。
✅ 5. 系统工具与安全设置
-
防火墙配置(开放端口,如 8080)
sudo ufw allow 8080 -
systemd 服务脚本(用于开机自启、进程管理)
# /etc/systemd/system/myapp.service [Unit] Description=My Spring Boot App After=syslog.target [Service] ExecStart=/usr/bin/java -jar /opt/myapp/app.jar User=myuser Restart=always [Install] WantedBy=multi-user.target
✅ 6. 监控与日志工具(生产推荐)
- 日志轮转:
logrotate - 监控:Prometheus + Grafana(如果暴露了
/actuator/prometheus) - 健康检查:Spring Boot Actuator 提供
/actuator/health
🚫 不需要安装的(常见误解)
- ❌ Tomcat / Jetty 等 Servlet 容器:Spring Boot 内嵌了,除非你打 WAR 包部署到外部容器。
- ❌ Maven / Gradle:编译阶段需要,运行时不需要。
- ❌ Git / 编辑器等开发工具:运行时不需要。
✅ 总结:最简运行环境清单
| 组件 | 是否必需 | 说明 |
|---|---|---|
| Java (JRE/JDK) | ✅ 必需 | 根据 Spring Boot 版本选择 |
| Spring Boot JAR | ✅ 必需 | 打包好的应用文件 |
| 数据库 | ⚠️ 按需 | 如 MySQL、PostgreSQL |
| Redis/RabbitMQ | ⚠️ 按需 | 根据功能需求 |
| Nginx | ⚠️ 可选 | 反向、HTTPS |
| systemd | ✅ 推荐 | 进程守护 |
| 防火墙配置 | ✅ 推荐 | 开放应用端口 |
如有具体项目结构或 pom.xml,可以进一步精确依赖列表。欢迎提供更多信息!
CLOUD技术笔记