最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項(xiàng)目部署的四種方式詳解

 更新時(shí)間:2026年04月24日 09:29:04   作者:青衫碼上行  
本文詳細(xì)介紹了SpringBoot項(xiàng)目的四種部署方式,包括原始命令部署、寶塔Linux可視化部署、Docker容器化部署和Docker容器平臺(tái)托管,每種方式都有其特點(diǎn)和適用場景,需要的朋友可以參考下

Spring Boot項(xiàng)目四種部署方式

項(xiàng)目開發(fā)完成后,部署是實(shí)現(xiàn)代碼落地可用的關(guān)鍵環(huán)節(jié),有以下四種方式,其中前三種詳細(xì)講解。
原始命令部署
寶塔Linux可視化部署
Docker容器化部署
Docker容器平臺(tái)托管

一、部署前通用準(zhǔn)備

無論選擇哪種部署方式,以下基礎(chǔ)準(zhǔn)備工作必不可少:

1.1 服務(wù)器與本地環(huán)境

服務(wù)器:我使用的是騰訊云輕量應(yīng)用服務(wù)器(2核2G+5M帶寬),操作系統(tǒng)選擇CentOS 7/8或OpenCloudOS。

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

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

核心信息:記錄服務(wù)器公網(wǎng)IP、登錄密碼,提前準(zhǔn)備生產(chǎn)環(huán)境配置文件(application-prod.yml)。

1.2 必備環(huán)境依賴

前端 部署需要的 web 服務(wù)器:nginx 、apache、tomcat

后端 部署需要的 javamaven、git 【以上都需要自行在連接了服務(wù)器的Linux上安裝】

  • 基礎(chǔ)依賴:JDK 1.8(與本地開發(fā)環(huán)境一致即可)、MySQL 8.0(項(xiàng)目數(shù)據(jù)庫)。
  • 端口開放:服務(wù)器防火墻(騰訊云控制臺(tái))和本地安全組開放8080(項(xiàng)目)、3306(MySQL)、8888(寶塔,僅寶塔部署需)端口。
  • 數(shù)據(jù)庫配置:創(chuàng)建項(xiàng)目所需數(shù)據(jù)庫(如yupi),執(zhí)行建表語句(下面的url最后面附帶的是時(shí)區(qū)設(shè)置,不然我的Idea連接會(huì)報(bào)錯(cuò),自己看需要設(shè)置)。

1.3 項(xiàng)目打包

  1. 配置application-prod.yml生產(chǎn)環(huán)境參數(shù):
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yupi?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: 數(shù)據(jù)庫用戶名
    password: 數(shù)據(jù)庫密碼
server:
  port: 8080
  servlet:
    context-path: /api
  1. 執(zhí)行Maven打包命令(跳過測試類)/ 或使用Idea中的圖形化按鈕:
mvn clean package -Dmaven.test.skip=true
  1. 打包成功后,在target目錄獲取Jar包(如user-center-0.0.1-SNAPSHOT.jar)。

二、方式一:原始命令部署(無可視化,純命令行)

適合熟悉Linux命令、追求輕量化部署的場景,無需額外安裝面板工具,直接通過命令行操作。

2.1 服務(wù)器環(huán)境搭建

  1. 遠(yuǎn)程連接服務(wù)器,安裝JDK 1.8:
# 安裝JDK
yum install -y java-1.8.0-openjdk-devel
# 驗(yàn)證安裝
java -version
  1. 安裝MySQL 8.0(參考官方文檔或執(zhí)行一鍵安裝腳本),啟動(dòng)并設(shè)置開機(jī)自啟:
systemctl start mysqld
systemctl enable mysqld

2.2 項(xiàng)目上傳與啟動(dòng)

  1. 創(chuàng)建項(xiàng)目目錄并上傳Jar包(后端):

方式一:使用Linux命令

# 創(chuàng)建目錄
mkdir -p /www/wwwroot/user-center-backend
# 將本地打包好的后端 Jar 包上傳到服務(wù)器指定目錄(可通過scp命令或FTP工具) 
scp 本地Jar包路徑 root@服務(wù)器公網(wǎng)IP:/www/wwwroot/user-center-backend

方式二:使用git直接上傳到服務(wù)器,然后自行轉(zhuǎn)移位置,再使用maven打包構(gòu)建
 

方式三:直接在Idea中用maven生成jar包后直接拖進(jìn)Linux里面就行

  • 前端:打開前端項(xiàng)目,build運(yùn)行一下,然后找到dist文件所在位置,壓縮,之后拖進(jìn)Xshell。
    解壓后,挪到存放前端文件夾的位置后。我們需要打開Nginx,cd conf 去修改一下nginx.conf的配置(其中可能遇到非常多的問題,比如需要修改權(quán)限然后重新加載nginx -s reload啥的…)
  1. 啟動(dòng)項(xiàng)目(兩種方式可選):
  • 臨時(shí)啟動(dòng)(關(guān)閉終端后項(xiàng)目停止):
java -jar /www/wwwroot/user-center-backend/user-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
  • 后臺(tái)啟動(dòng)(推薦,不受終端影響,不會(huì)一直占用Linux的命令行,而是后臺(tái)運(yùn)行):
nohup java -jar user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &

這樣就部署成功了:

1. 臨時(shí)啟動(dòng):

2.后臺(tái)啟動(dòng)

  1. 驗(yàn)證啟動(dòng):查看日志或端口占用:
# 查看日志
tail -f app.log
# 查看8080端口
netstat -ntlp | grep 8080

2.3 項(xiàng)目維護(hù)

  • 停止項(xiàng)目:
# 查找進(jìn)程PID
ps -ef | grep java
# 終止進(jìn)程
kill -9 進(jìn)程PID
  • 更新項(xiàng)目:替換舊Jar包后,重復(fù)啟動(dòng)命令即可。

2.4 優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):輕量化、無額外依賴、操作靈活。
  • 缺點(diǎn):無可視化界面,需手動(dòng)輸入命令,非常的麻煩,巨麻煩!?。?!。

三、方式二:寶塔Linux部署(可視化,新手友好)

通過寶塔面板簡化服務(wù)器操作,無需復(fù)雜命令,點(diǎn)擊鼠標(biāo)即可完成環(huán)境搭建、項(xiàng)目部署,適合新手或追求高效部署的場景。

重裝系統(tǒng),方式一用的是CentOS系統(tǒng),這次用寶塔Linux系統(tǒng)

3.1 使用寶塔面板

我們可以安裝寶塔Linux,也可以選擇使用騰訊云服務(wù)器自帶的寶塔Linux?!具@里我使用服務(wù)器自帶的】

  1. 在防火墻中可以添加自己的ip地址,僅限自己訪問(端口默認(rèn)8888

  • 訪問對(duì)應(yīng)的網(wǎng)址進(jìn)入寶塔Linux控制面板

輸入賬號(hào)和密碼登錄進(jìn)去:

3.2 搭建基礎(chǔ)環(huán)境

  1. 在寶塔面板左下的 軟件商店 搜索安裝:
  • Tomcat(下載這個(gè)只是為了java,它里面包含java的)
  • MySQL 8.0(數(shù)據(jù)庫)
  • Nginx

3.3 項(xiàng)目部署與啟動(dòng)

前端部署:

去添加站點(diǎn),域名暫時(shí)是自己的公網(wǎng)(寶塔左上角那個(gè)地址)

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

啟動(dòng)項(xiàng)目

后端部署:

上傳Jar包:「文件」→ 進(jìn)入/www/wwwroot,創(chuàng)建user-center-backend目錄(自行創(chuàng)建存放后端文件的目錄),上傳本地Jar包。

在站點(diǎn)添加java項(xiàng)目,特別注意端口。(我們項(xiàng)目的運(yùn)行端口是8080,這里如果顯示8080被占用,可能是Tomcat,去軟件商店停止他)

啟動(dòng)項(xiàng)目:點(diǎn)擊「啟動(dòng)」

記得在服務(wù)器放行8080端口,不然是無法成功啟動(dòng)的

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

3.4 優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):可視化操作、新手友好(是真的方便)、環(huán)境搭建快、支持進(jìn)程守護(hù)和日志查看。
  • 缺點(diǎn):依賴面板工具,占用少量服務(wù)器資源。

四、方式三:Docker容器化部署(標(biāo)準(zhǔn)化,可移植性強(qiáng))

通過Docker容器封裝項(xiàng)目及依賴環(huán)境,實(shí)現(xiàn)“一次構(gòu)建、到處運(yùn)行”,解決環(huán)境不一致問題,適合多環(huán)境部署、集群化場景。

4.1 服務(wù)器安裝Docker

遠(yuǎn)程連接服務(wù)器,安裝Docker / 或使用寶塔Linux的服務(wù)商店下載Docker
這里我使用寶塔下載:

4.2 構(gòu)建Docker鏡像

制作鏡像
Dockerfile 用于指定構(gòu)建 Docker 鏡像的方法,Dockerfile 一般情況下不需要完全從 0 自己寫,建議去 github、gitee 等托管平臺(tái)參考同類項(xiàng)目(比如 springboot)

Dockerfile 編寫內(nèi)容總覽:
 ● FROM 依賴的基礎(chǔ)鏡像
 ● WORKDIR 工作目錄
 ● COPY 從本機(jī)復(fù)制文件
 ● RUN 執(zhí)行命令
 ● CMD / ENTRYPOINT(附加額外參數(shù))指定運(yùn)行容器時(shí)默認(rèn)執(zhí)行的命令

  1. 在后端項(xiàng)目根目錄創(chuàng)建Dockerfile文件(本地創(chuàng)建后上傳到服務(wù)器項(xiàng)目目錄):
# 基礎(chǔ)鏡像(JDK 1.8)
FROM openjdk:8-jdk-alpine
# 作者信息
LABEL maintainer="your-name"
# 復(fù)制Jar包到容器
COPY target/user-center-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口
EXPOSE 8080
# 啟動(dòng)命令
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]
  1. 上傳Dockerfile(我使用git上傳),然后構(gòu)建鏡像:
cd user-center-backend
docker build -t user-center-backend:v1.0 .
  1. 查看鏡像:
docker images

前端:前端的dockerFilenginx.conf,這些也是需要上傳到git倉庫里,然后clone過去就行,構(gòu)建鏡像命令:先進(jìn)入上傳的前端項(xiàng)目目錄中cd user-center-frontend,再構(gòu)建docker build -t user-center-frontend:v0.0.1 .(跟后端的操作都大差不差)

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

4.3 啟動(dòng)Docker容器

  1. 直接啟動(dòng)容器:
后端:docker run -p 8080:8080 user-center-backend:v0.0.1
前端:docker run -p 80:80 -d user-center-frontend:v0.0.1
  • 參數(shù)說明:-d(后臺(tái)運(yùn)行)、-p 8080:8080(端口映射,主機(jī)端口:容器端口)。

若啟動(dòng)后端時(shí)出現(xiàn)這這個(gè)報(bào)錯(cuò)的話(因運(yùn)存不足無法給進(jìn)程分配更多的文件句柄數(shù)而異常退出):

[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)缺點(diǎn)

  • 優(yōu)點(diǎn):環(huán)境隔離、可移植性強(qiáng)、部署標(biāo)準(zhǔn)化、支持集群擴(kuò)展。
  • 缺點(diǎn):需學(xué)習(xí)Docker基礎(chǔ)命令,初次配置稍復(fù)雜。

五、三種部署方式對(duì)比

部署方式核心優(yōu)勢適用場景操作難度
原始命令部署輕量化、無額外依賴熟悉Linux命令、小型項(xiàng)目難+麻煩
寶塔Linux部署可視化、新手友好、部署高效新手、快速部署需求、中小型項(xiàng)目
Docker容器部署環(huán)境隔離、可移植性強(qiáng)、支持集群多環(huán)境部署、大型項(xiàng)目、集群化場景

補(bǔ)充:Docker容器平臺(tái)托管

額外提一嘴:還有一種 Docker容器平臺(tái)托管 的方式(如微信云托管):

特點(diǎn):傻瓜式部署,只需上傳對(duì)應(yīng)的文件即可(平臺(tái)幫忙部署),巨方便。(這里就不展開了)

以上就是SpringBoot項(xiàng)目部署的四種方式詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot項(xiàng)目部署方式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java FutureTask解析與實(shí)戰(zhàn)指南

    Java FutureTask解析與實(shí)戰(zhàn)指南

    本文解析FutureTask,支持異步執(zhí)行、取消、結(jié)果獲取,結(jié)合ExecutorService實(shí)現(xiàn)高效任務(wù)管理,適用于并發(fā)編程中的響應(yīng)優(yōu)化與進(jìn)度監(jiān)控,感興趣的朋友一起看看吧
    2025-07-07
  • Java基礎(chǔ)之垃圾回收機(jī)制詳解

    Java基礎(chǔ)之垃圾回收機(jī)制詳解

    這篇文章主要介紹了Java基礎(chǔ)之垃圾回收機(jī)制詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Spring @CrossOrigin 注解原理實(shí)現(xiàn)

    Spring @CrossOrigin 注解原理實(shí)現(xiàn)

    這篇文章主要介紹了Spring @CrossOrigin 注解原理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot項(xiàng)目啟動(dòng)健康檢查的操作方法

    SpringBoot項(xiàng)目啟動(dòng)健康檢查的操作方法

    在現(xiàn)代的微服務(wù)架構(gòu)中,容器化技術(shù)已經(jīng)成為一種主流的部署方式,Docker 作為容器化技術(shù)的代表,提供了一種輕量級(jí)、可移植的解決方案,然而,僅僅將應(yīng)用容器化是不夠的,我們還需要確保這些容器在運(yùn)行時(shí)能夠保持健康狀態(tài),這就是健康檢查發(fā)揮作用的地方
    2024-12-12
  • springmvc九大組件之HandlerAdapter詳解

    springmvc九大組件之HandlerAdapter詳解

    這篇文章主要介紹了springmvc九大組件之HandlerAdapter詳解,RequestMappingHandlerAdapter支持的handler的類型是HandlerMethod,而HandlerMethod是通過解析@RequestMapping注解獲得的,需要的朋友可以參考下
    2023-11-11
  • 一文詳解Java中的反射api

    一文詳解Java中的反射api

    這篇文章主要為大家詳細(xì)介紹了Java中的6個(gè)反射api,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • SpringBoot項(xiàng)目開發(fā)常用技術(shù)整合

    SpringBoot項(xiàng)目開發(fā)常用技術(shù)整合

    今天給大家分享springboot項(xiàng)目開發(fā)常用技術(shù)整合,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • Java應(yīng)用服務(wù)器之tomcat會(huì)話復(fù)制集群配置的示例詳解

    Java應(yīng)用服務(wù)器之tomcat會(huì)話復(fù)制集群配置的示例詳解

    這篇文章主要介紹了Java應(yīng)用服務(wù)器之tomcat會(huì)話復(fù)制集群配置的相關(guān)知識(shí),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java 取模與取余的區(qū)別說明

    java 取模與取余的區(qū)別說明

    這篇文章主要介紹了java 取模與取余的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java POI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出通用方法與樣式處理

    Java POI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出通用方法與樣式處理

    Apache POI庫是Java領(lǐng)域處理Microsoft Office文件的關(guān)鍵工具,該項(xiàng)目使用POI 3.17版本實(shí)現(xiàn)Excel文件的讀寫功能,本文介紹Excel導(dǎo)入導(dǎo)出的步驟以及如何添加和維護(hù)樣式,包括字體、顏色、邊框和對(duì)齊等,需要的朋友可以參考下
    2025-08-08

最新評(píng)論

大安市| 凤翔县| 宿州市| 拉萨市| 福泉市| 肃南| 丰镇市| 庆阳市| 福泉市| 博爱县| 青岛市| 紫云| 洞口县| 阿坝县| 吐鲁番市| 永登县| 当阳市| 东方市| 东兴市| 瓦房店市| 瑞金市| 崇左市| 醴陵市| 岑溪市| 犍为县| 敦化市| 武隆县| 潍坊市| 肇东市| 香河县| 武鸣县| 湖北省| 宜章县| 龙州县| 互助| 赣州市| 师宗县| 长寿区| 黑河市| 苍溪县| 宜宾县|