当前位置: 代码网 > it编程>编程语言>Java > SpringBoot项目部署的四种方式详解

SpringBoot项目部署的四种方式详解

2026年04月24日 Java 我要评论
spring boot项目四种部署方式项目开发完成后,部署是实现代码落地可用的关键环节,有以下四种方式,其中前三种详细讲解。 原始命令部署 宝塔linux可视化部署 docker容器化部署 docke

spring boot项目四种部署方式

项目开发完成后,部署是实现代码落地可用的关键环节,有以下四种方式,其中前三种详细讲解。
原始命令部署
宝塔linux可视化部署
docker容器化部署
docker容器平台托管

一、部署前通用准备

无论选择哪种部署方式,以下基础准备工作必不可少:

1.1 服务器与本地环境

服务器:我使用的是腾讯云轻量应用服务器(2核2g+5m带宽),操作系统选择centos 7/8或opencloudos。

本地环境:项目无编译错误,可通过mvn clean package成功打包;安装远程连接工具(xshell / finalshell)并连接,我这里使用的是xshell。(使用 free -h可以查看你的服务器信息)

其中,连接的账户和密码在此处查看【不管是不是宝塔linux部署方式,都是在这】:

核心信息:记录服务器公网ip、登录密码,提前准备生产环境配置文件(application-prod.yml)。

1.2 必备环境依赖

前端 部署需要的 web 服务器:nginx 、apachetomcat

后端 部署需要的 javamavengit 【以上都需要自行在连接了服务器的linux上安装】

  • 基础依赖:jdk 1.8(与本地开发环境一致即可)、mysql 8.0(项目数据库)。
  • 端口开放:服务器防火墙(腾讯云控制台)和本地安全组开放8080(项目)、3306(mysql)、8888(宝塔,仅宝塔部署需)端口。
  • 数据库配置:创建项目所需数据库(如yupi),执行建表语句(下面的url最后面附带的是时区设置,不然我的idea连接会报错,自己看需要设置)。

1.3 项目打包

  1. 配置application-prod.yml生产环境参数:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yupi?useunicode=true&characterencoding=utf-8&usessl=false&servertimezone=asia/shanghai
    username: 数据库用户名
    password: 数据库密码
server:
  port: 8080
  servlet:
    context-path: /api
  1. 执行maven打包命令(跳过测试类)/ 或使用idea中的图形化按钮:
mvn clean package -dmaven.test.skip=true
  1. 打包成功后,在target目录获取jar包(如user-center-0.0.1-snapshot.jar)。

二、方式一:原始命令部署(无可视化,纯命令行)

适合熟悉linux命令、追求轻量化部署的场景,无需额外安装面板工具,直接通过命令行操作。

2.1 服务器环境搭建

  1. 远程连接服务器,安装jdk 1.8:
# 安装jdk
yum install -y java-1.8.0-openjdk-devel
# 验证安装
java -version
  1. 安装mysql 8.0(参考官方文档或执行一键安装脚本),启动并设置开机自启:
systemctl start mysqld
systemctl enable mysqld

2.2 项目上传与启动

  1. 创建项目目录并上传jar包(后端):

方式一:使用linux命令

# 创建目录
mkdir -p /www/wwwroot/user-center-backend
# 将本地打包好的后端 jar 包上传到服务器指定目录(可通过scp命令或ftp工具) 
scp 本地jar包路径 root@服务器公网ip:/www/wwwroot/user-center-backend

方式二:使用git直接上传到服务器,然后自行转移位置,再使用maven打包构建
 

方式三:直接在idea中用maven生成jar包后直接拖进linux里面就行

  • 前端:打开前端项目,build运行一下,然后找到dist文件所在位置,压缩,之后拖进xshell。
    解压后,挪到存放前端文件夹的位置后。我们需要打开nginx,cd conf 去修改一下nginx.conf的配置(其中可能遇到非常多的问题,比如需要修改权限然后重新加载nginx -s reload啥的…)
  1. 启动项目(两种方式可选):
  • 临时启动(关闭终端后项目停止):
java -jar /www/wwwroot/user-center-backend/user-center-0.0.1-snapshot.jar --spring.profiles.active=prod
  • 后台启动(推荐,不受终端影响,不会一直占用linux的命令行,而是后台运行):
nohup java -jar user-center-backend-0.0.1-snapshot.jar --spring.profiles.active=prod &

这样就部署成功了:

1. 临时启动:

2.后台启动

  1. 验证启动:查看日志或端口占用:
# 查看日志
tail -f app.log
# 查看8080端口
netstat -ntlp | grep 8080

2.3 项目维护

  • 停止项目:
# 查找进程pid
ps -ef | grep java
# 终止进程
kill -9 进程pid
  • 更新项目:替换旧jar包后,重复启动命令即可。

2.4 优缺点

  • 优点:轻量化、无额外依赖、操作灵活。
  • 缺点:无可视化界面,需手动输入命令,非常的麻烦,巨麻烦!!!!。

三、方式二:宝塔linux部署(可视化,新手友好)

通过宝塔面板简化服务器操作,无需复杂命令,点击鼠标即可完成环境搭建、项目部署,适合新手或追求高效部署的场景。

重装系统,方式一用的是centos系统,这次用宝塔linux系统

3.1 使用宝塔面板

我们可以安装宝塔linux,也可以选择使用腾讯云服务器自带的宝塔linux。【这里我使用服务器自带的】

  1. 在防火墙中可以添加自己的ip地址,仅限自己访问(端口默认8888

  • 访问对应的网址进入宝塔linux控制面板

输入账号和密码登录进去:

3.2 搭建基础环境

  1. 在宝塔面板左下的 软件商店 搜索安装:
  • tomcat(下载这个只是为了java,它里面包含java的)
  • mysql 8.0(数据库)
  • nginx

3.3 项目部署与启动

前端部署:

去添加站点,域名暂时是自己的公网(宝塔左上角那个地址)

打开新建的站点,把里面的文件全删掉,再把自己的前端dist里的文件全选拖进去上传

启动项目

后端部署:

上传jar包:「文件」→ 进入/www/wwwroot,创建user-center-backend目录(自行创建存放后端文件的目录),上传本地jar包。

在站点添加java项目,特别注意端口。(我们项目的运行端口是8080,这里如果显示8080被占用,可能是tomcat,去软件商店停止他)

启动项目:点击「启动」

记得在服务器放行8080端口,不然是无法成功启动的

查看状态变为「运行中」,并且有cpu占用(刚启动可能会很高,过一会就会降下来了)

3.4 优缺点

  • 优点:可视化操作、新手友好(是真的方便)、环境搭建快、支持进程守护和日志查看。
  • 缺点:依赖面板工具,占用少量服务器资源。

四、方式三:docker容器化部署(标准化,可移植性强)

通过docker容器封装项目及依赖环境,实现“一次构建、到处运行”,解决环境不一致问题,适合多环境部署、集群化场景。

4.1 服务器安装docker

远程连接服务器,安装docker / 或使用宝塔linux的服务商店下载docker
这里我使用宝塔下载:

4.2 构建docker镜像

制作镜像
dockerfile 用于指定构建 docker 镜像的方法,dockerfile 一般情况下不需要完全从 0 自己写,建议去 github、gitee 等托管平台参考同类项目(比如 springboot)

dockerfile 编写内容总览:
 ● from 依赖的基础镜像
 ● workdir 工作目录
 ● copy 从本机复制文件
 ● run 执行命令
 ● cmd / entrypoint(附加额外参数)指定运行容器时默认执行的命令

  1. 在后端项目根目录创建dockerfile文件(本地创建后上传到服务器项目目录):
# 基础镜像(jdk 1.8)
from openjdk:8-jdk-alpine
# 作者信息
label maintainer="your-name"
# 复制jar包到容器
copy target/user-center-0.0.1-snapshot.jar app.jar
# 暴露端口
expose 8080
# 启动命令
entrypoint ["java","-jar","/app.jar","--spring.profiles.active=prod"]
  1. 上传dockerfile(我使用git上传),然后构建镜像:
cd user-center-backend
docker build -t user-center-backend:v1.0 .
  1. 查看镜像:
docker images

前端:前端的dockerfilenginx.conf,这些也是需要上传到git仓库里,然后clone过去就行,构建镜像命令:先进入上传的前端项目目录中cd user-center-frontend,再构建docker build -t user-center-frontend:v0.0.1 .(跟后端的操作都大差不差)

在docker管理器里也可以看到制作成功的docker镜像:

4.3 启动docker容器

  1. 直接启动容器:
后端:docker run -p 8080:8080 user-center-backend:v0.0.1
前端:docker run -p 80:80 -d user-center-frontend:v0.0.1
  • 参数说明:-d(后台运行)、-p 8080:8080(端口映射,主机端口:容器端口)。

若启动后端时出现这这个报错的话(因运存不足无法给进程分配更多的文件句柄数而异常退出):

[root@vm-0-5-opencloudos user-center-frontend]# docker run -p 8080:8080 user-center-backend    v1.0
unable to find image 'user-center-backend:latest' locally

我们可以改为执行:

docker run --ulimit nofile=1024 -p 8080:8080 user-center-backend:v1.0

4.4 优缺点

  • 优点:环境隔离、可移植性强、部署标准化、支持集群扩展。
  • 缺点:需学习docker基础命令,初次配置稍复杂。

五、三种部署方式对比

部署方式核心优势适用场景操作难度
原始命令部署轻量化、无额外依赖熟悉linux命令、小型项目难+麻烦
宝塔linux部署可视化、新手友好、部署高效新手、快速部署需求、中小型项目
docker容器部署环境隔离、可移植性强、支持集群多环境部署、大型项目、集群化场景

补充:docker容器平台托管

额外提一嘴:还有一种 docker容器平台托管 的方式(如微信云托管):

特点:傻瓜式部署,只需上传对应的文件即可(平台帮忙部署),巨方便。(这里就不展开了)

以上就是springboot项目部署的四种方式详解的详细内容,更多关于springboot项目部署方式的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com