SpringBoot項目部署的四種方式詳解
Spring Boot項目四種部署方式
| 項目開發(fā)完成后,部署是實現(xiàn)代碼落地可用的關鍵環(huán)節(jié),有以下四種方式,其中前三種詳細講解。 |
| 原始命令部署 |
| 寶塔Linux可視化部署 |
| Docker容器化部署 |
| Docker容器平臺托管 |
一、部署前通用準備
無論選擇哪種部署方式,以下基礎準備工作必不可少:
1.1 服務器與本地環(huán)境
服務器:我使用的是騰訊云輕量應用服務器(2核2G+5M帶寬),操作系統(tǒng)選擇CentOS 7/8或OpenCloudOS。

本地環(huán)境:項目無編譯錯誤,可通過mvn clean package成功打包;安裝遠程連接工具(Xshell / FinalShell)并連接,我這里使用的是Xshell。(使用 free -h可以查看你的服務器信息)

其中,連接的賬戶和密碼在此處查看【不管是不是寶塔Linux部署方式,都是在這】:

核心信息:記錄服務器公網IP、登錄密碼,提前準備生產環(huán)境配置文件(application-prod.yml)。
1.2 必備環(huán)境依賴
前端 部署需要的 web 服務器:
nginx、apache、tomcat后端 部署需要的
java、maven、git【以上都需要自行在連接了服務器的Linux上安裝】
- 基礎依賴:JDK 1.8(與本地開發(fā)環(huán)境一致即可)、MySQL 8.0(項目數據庫)。
- 端口開放:服務器防火墻(騰訊云控制臺)和本地安全組開放8080(項目)、3306(MySQL)、8888(寶塔,僅寶塔部署需)端口。
- 數據庫配置:創(chuàng)建項目所需數據庫(如
yupi),執(zhí)行建表語句(下面的url最后面附帶的是時區(qū)設置,不然我的Idea連接會報錯,自己看需要設置)。
1.3 項目打包
- 配置
application-prod.yml生產環(huán)境參數:
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- 執(zhí)行Maven打包命令(跳過測試類)/ 或使用Idea中的圖形化按鈕:
mvn clean package -Dmaven.test.skip=true
- 打包成功后,在
target目錄獲取Jar包(如user-center-0.0.1-SNAPSHOT.jar)。

二、方式一:原始命令部署(無可視化,純命令行)
適合熟悉Linux命令、追求輕量化部署的場景,無需額外安裝面板工具,直接通過命令行操作。
2.1 服務器環(huán)境搭建
- 遠程連接服務器,安裝JDK 1.8:
# 安裝JDK yum install -y java-1.8.0-openjdk-devel # 驗證安裝 java -version
- 安裝MySQL 8.0(參考官方文檔或執(zhí)行一鍵安裝腳本),啟動并設置開機自啟:
systemctl start mysqld systemctl enable mysqld
2.2 項目上傳與啟動
- 創(chuàng)建項目目錄并上傳Jar包(后端):
方式一:使用Linux命令
# 創(chuàng)建目錄 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啥的…)
- 啟動項目(兩種方式可選):
- 臨時啟動(關閉終端后項目停止):
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.后臺啟動

- 驗證啟動:查看日志或端口占用:
# 查看日志 tail -f app.log # 查看8080端口 netstat -ntlp | grep 8080
2.3 項目維護
- 停止項目:
# 查找進程PID ps -ef | grep java # 終止進程 kill -9 進程PID
- 更新項目:替換舊Jar包后,重復啟動命令即可。
2.4 優(yōu)缺點
- 優(yōu)點:輕量化、無額外依賴、操作靈活。
- 缺點:無可視化界面,需手動輸入命令,非常的麻煩,巨麻煩?。。?!。
三、方式二:寶塔Linux部署(可視化,新手友好)
通過寶塔面板簡化服務器操作,無需復雜命令,點擊鼠標即可完成環(huán)境搭建、項目部署,適合新手或追求高效部署的場景。
重裝系統(tǒng),方式一用的是CentOS系統(tǒng),這次用寶塔Linux系統(tǒng)

3.1 使用寶塔面板
我們可以安裝寶塔Linux,也可以選擇使用騰訊云服務器自帶的寶塔Linux?!具@里我使用服務器自帶的】
- 在防火墻中可以添加自己的ip地址,僅限自己訪問(端口默認
8888)

- 訪問對應的網址進入寶塔Linux控制面板

輸入賬號和密碼登錄進去:

3.2 搭建基礎環(huán)境
- 在寶塔面板左下的 軟件商店 搜索安裝:
- Tomcat(下載這個只是為了java,它里面包含java的)
- MySQL 8.0(數據庫)
- Nginx

3.3 項目部署與啟動
前端部署:
去添加站點,域名暫時是自己的公網(寶塔左上角那個地址)

打開新建的站點,把里面的文件全刪掉,再把自己的前端dist里的文件全選拖進去上傳

啟動項目

后端部署:
上傳Jar包:「文件」→ 進入/www/wwwroot,創(chuàng)建user-center-backend目錄(自行創(chuàng)建存放后端文件的目錄),上傳本地Jar包。
在站點添加java項目,特別注意端口。(我們項目的運行端口是8080,這里如果顯示8080被占用,可能是Tomcat,去軟件商店停止他)

啟動項目:點擊「啟動」
記得在服務器放行8080端口,不然是無法成功啟動的

查看狀態(tài)變?yōu)椤高\行中」,并且有CPU占用(剛啟動可能會很高,過一會就會降下來了)

3.4 優(yōu)缺點
- 優(yōu)點:可視化操作、新手友好(是真的方便)、環(huán)境搭建快、支持進程守護和日志查看。
- 缺點:依賴面板工具,占用少量服務器資源。
四、方式三:Docker容器化部署(標準化,可移植性強)
通過Docker容器封裝項目及依賴環(huán)境,實現(xiàn)“一次構建、到處運行”,解決環(huán)境不一致問題,適合多環(huán)境部署、集群化場景。
4.1 服務器安裝Docker
遠程連接服務器,安裝Docker / 或使用寶塔Linux的服務商店下載Docker
這里我使用寶塔下載:

4.2 構建Docker鏡像
制作鏡像
Dockerfile 用于指定構建 Docker 鏡像的方法,Dockerfile 一般情況下不需要完全從 0 自己寫,建議去 github、gitee 等托管平臺參考同類項目(比如 springboot)Dockerfile 編寫內容總覽:
● FROM 依賴的基礎鏡像
● WORKDIR 工作目錄
● COPY 從本機復制文件
● RUN 執(zhí)行命令
● CMD / ENTRYPOINT(附加額外參數)指定運行容器時默認執(zhí)行的命令
- 在后端項目根目錄創(chuàng)建
Dockerfile文件(本地創(chuàng)建后上傳到服務器項目目錄):
# 基礎鏡像(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"]
- 上傳
Dockerfile(我使用git上傳),然后構建鏡像:
cd user-center-backend docker build -t user-center-backend:v1.0 .
- 查看鏡像:
docker images

前端:前端的dockerFile和nginx.conf,這些也是需要上傳到git倉庫里,然后clone過去就行,構建鏡像命令:先進入上傳的前端項目目錄中cd user-center-frontend,再構建docker build -t user-center-frontend:v0.0.1 .(跟后端的操作都大差不差)
在Docker管理器里也可以看到制作成功的docker鏡像:

4.3 啟動Docker容器
- 直接啟動容器:
后端: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(端口映射,主機端口:容器端口)。
若啟動后端時出現(xiàn)這這個報錯的話(因運存不足無法給進程分配更多的文件句柄數而異常退出):
[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
我們可以改為執(zhí)行:
docker run --ulimit nofile=1024 -p 8080:8080 user-center-backend:v1.0
4.4 優(yōu)缺點
- 優(yōu)點:環(huán)境隔離、可移植性強、部署標準化、支持集群擴展。
- 缺點:需學習Docker基礎命令,初次配置稍復雜。
五、三種部署方式對比
| 部署方式 | 核心優(yōu)勢 | 適用場景 | 操作難度 |
|---|---|---|---|
| 原始命令部署 | 輕量化、無額外依賴 | 熟悉Linux命令、小型項目 | 難+麻煩 |
| 寶塔Linux部署 | 可視化、新手友好、部署高效 | 新手、快速部署需求、中小型項目 | 低 |
| Docker容器部署 | 環(huán)境隔離、可移植性強、支持集群 | 多環(huán)境部署、大型項目、集群化場景 | 中 |
補充:Docker容器平臺托管
額外提一嘴:還有一種 Docker容器平臺托管 的方式(如微信云托管):
特點:傻瓜式部署,只需上傳對應的文件即可(平臺幫忙部署),巨方便。(這里就不展開了)

以上就是SpringBoot項目部署的四種方式詳解的詳細內容,更多關于SpringBoot項目部署方式的資料請關注腳本之家其它相關文章!
相關文章
Spring @CrossOrigin 注解原理實現(xiàn)
這篇文章主要介紹了Spring @CrossOrigin 注解原理實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
springmvc九大組件之HandlerAdapter詳解
這篇文章主要介紹了springmvc九大組件之HandlerAdapter詳解,RequestMappingHandlerAdapter支持的handler的類型是HandlerMethod,而HandlerMethod是通過解析@RequestMapping注解獲得的,需要的朋友可以參考下2023-11-11
Java POI實現(xiàn)Excel導入導出通用方法與樣式處理
Apache POI庫是Java領域處理Microsoft Office文件的關鍵工具,該項目使用POI 3.17版本實現(xiàn)Excel文件的讀寫功能,本文介紹Excel導入導出的步驟以及如何添加和維護樣式,包括字體、顏色、邊框和對齊等,需要的朋友可以參考下2025-08-08

