news 2026/6/26 12:47:11

Spring Boot 项目部署与开机自启详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 项目部署与开机自启详解

Spring Boot 项目有两种部署方式:

  1. 推荐:直接运行 JAR 包(无需安装外部 Tomcat,Spring Boot 内嵌容器,配置更简单);

  2. WAR 包部署(需禁用内嵌 Tomcat,适配外部 Tomcat)。

下面优先讲更简单的JAR 包部署+开机自启,再补充 WAR 包适配要点。


方式1:Spring Boot JAR 包部署(推荐)

前提

  1. 本地已将 Spring Boot 项目打包为xxx.jar(可通过mvn clean package或 IDE 打包);

  2. 服务器已安装 Java 17(你已完成)。

步骤1:上传 JAR 包到服务器

# 创建应用目录(规范管理) sudo mkdir -p /opt/springboot-app # 上传 JAR 包(替换为你的 JAR 包名和服务器IP) scp your-app.jar admin@你的服务器IP:/opt/springboot-app/ # 给 JAR 包执行权限 sudo chmod +x /opt/springboot-app/your-app.jar

步骤2:创建 systemd 服务文件(开机自启核心)

sudo nano /etc/systemd/system/springboot-app.service

粘贴以下配置(根据你的实际情况修改):

[Unit] Description=Spring Boot Application After=network.target # 网络启动后再启动应用 [Service] # 运行用户(避免 root 运行,提升安全性) User=admin Group=admin # 应用目录 WorkingDirectory=/opt/springboot-app # Java 启动命令(指定 JAR 包,配置 JVM 参数) ExecStart=/usr/bin/java -jar /opt/springboot-app/your-app.jar \ -Xms512M -Xmx1024M # 重启策略(异常退出时自动重启) Restart=on-failure RestartSec=5 # 日志输出(可选,也可依赖 Spring Boot 自身日志) StandardOutput=append:/opt/springboot-app/app.log StandardError=append:/opt/springboot-app/app-error.log [Install] WantedBy=multi-user.target

保存退出(Ctrl+O → 回车 → Ctrl+X)。

步骤3:配置并启动服务

# 重新加载 systemd 配置 sudo systemctl daemon-reload # 启动应用服务 sudo systemctl start springboot-app # 设置开机自启 sudo systemctl enable springboot-app # 查看服务状态(确认是否启动成功) sudo systemctl status springboot-app

如果状态显示active (running),说明启动成功。

步骤4:验证应用访问

访问http://你的服务器IP:应用端口/接口路径(端口是你 Spring Boot 配置的server.port,默认 8080),能正常访问接口即部署成功。


方式2:Spring Boot WAR 包部署(适配外部 Tomcat)

如果必须用 WAR 包部署到外部 Tomcat,需要先修改 Spring Boot 项目代码,再按之前的 Tomcat 部署步骤操作:

步骤1:本地项目修改(关键适配)

  1. 修改 pom.xml

    <!-- 1. 打包方式改为 war --> <packaging>war</packaging> <!-- 2. 禁用内嵌 Tomcat(提供为编译时依赖) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- 3. 引入 Spring Boot WAR 支持(如果是 Spring Boot 2.x+/3.x) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
  2. 修改启动类

  3. 让启动类继承SpringBootServletInitializer并重写configure方法:

    import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class YourAppApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(YourAppApplication.class); } public static void main(String[] args) { SpringApplication.run(YourAppApplication.class, args); } }
  4. 打包 WAR 包

  5. 执行mvn clean package,生成的 WAR 包在target目录下。

步骤2:服务器部署

按之前给你的 Tomcat 部署步骤操作:

  1. 将 WAR 包上传到 Tomcat 的webapps目录;

  2. 配置 Tomcat 的 systemd 服务并设置开机自启;

  3. 访问路径:http://服务器IP:Tomcat端口/WAR包名/接口路径


常用运维命令

# 重启 Spring Boot 应用 sudo systemctl restart springboot-app # 停止应用 sudo systemctl stop springboot-app # 查看应用日志(Spring Boot 自身日志,默认在应用目录下) tail -f /opt/springboot-app/logs/xxx.log # 或你配置的日志路径 # 查看系统服务日志 journalctl -u springboot-app -f

总结

  1. 推荐方案:Spring Boot 优先用JAR 包部署,无需外部 Tomcat,通过systemd配置服务即可实现开机自启,步骤更简单;

  2. WAR 包适配:需修改项目pom.xml(禁用内嵌 Tomcat)和启动类(继承SpringBootServletInitializer),再部署到外部 Tomcat;

  3. 自启核心:通过systemd服务文件配置ExecStart启动命令、Restart重启策略,执行enable开启开机自启。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 12:18:53

保姆级教程:在CentOS 7上搞定Hive 3.1.2与MySQL 8.0的完整安装与配置

CentOS 7实战&#xff1a;Hive 3.1.2与MySQL 8.0企业级部署全指南 当数据规模突破单机处理极限时&#xff0c;Hive作为Hadoop生态的核心数据仓库工具&#xff0c;成为企业级数据分析的标配。本文将带您完成从零开始的生产级Hive 3.1.2部署&#xff0c;重点解决MySQL 8.0元数据库…

作者头像 李华
网站建设 2026/6/11 3:35:42

魔兽争霸III优化插件WarcraftHelper:终极免费配置指南

魔兽争霸III优化插件WarcraftHelper&#xff1a;终极免费配置指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在现代电脑上…

作者头像 李华
网站建设 2026/6/8 12:16:11

终极宝可梦存档编辑器:PKHeX.Mobile跨平台精灵管理完全教程

终极宝可梦存档编辑器&#xff1a;PKHeX.Mobile跨平台精灵管理完全教程 【免费下载链接】PKHeX.Mobile Pokmon save editor for Android and iOS! 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX.Mobile 还在为宝可梦存档修改而烦恼吗&#xff1f;PKHeX.Mobile是一…

作者头像 李华