SpringBoot實(shí)現(xiàn)動(dòng)態(tài)配置及項(xiàng)目打包部署上線功能
寫在前面
本文講解的是如何使用Spring動(dòng)態(tài)配置文件,實(shí)現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用 Maven 打包,然后上傳至Linux服務(wù)器進(jìn)行部署。(PS:如果你是新手,可以跟著系列專欄的框架搭建先動(dòng)手把項(xiàng)目搭建起來,然后在結(jié)合本期內(nèi)容繼續(xù)深入學(xué)習(xí),這樣會(huì)有更好的效果。)
一、動(dòng)態(tài)配置文件
在定制鏡像前,我們需要了解Spring動(dòng)態(tài)指定配置文件的方式,來提高我們的部署效率。
1.1、概述
在實(shí)際企業(yè)開發(fā)中,開發(fā)環(huán)境
、測(cè)試環(huán)境
、生產(chǎn)環(huán)境
通常采用不同的數(shù)據(jù)庫等中間件的連接方式。如果此時(shí)我們按照目前的方式,只有一個(gè)application.yml
配置文件,那么我們?cè)诓煌h(huán)境下啟動(dòng)項(xiàng)目,都需要更改配置文件中的各種連接信息,雖然目前我們需要更改的連接地址少,但是每次去手動(dòng)的更改這些信息,人工改的話是非常容易改錯(cuò)的。
Spring 提供了可以指定配置文件啟動(dòng)的方式,這樣使得我們可以靈活的切換配置文件。
目前項(xiàng)目中也使用了這個(gè)指定配置文件的方式,只不過是在配置文件中指定的。代碼如下圖:
我們要做的是,在啟動(dòng)的時(shí)候指定。我們需要復(fù)制配置文件application.yml
和application-druid.yml
,命名為application-prod.yml
和application-druid-prod.yml
,用來區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境,多個(gè)環(huán)境同理。
不指定配置文件,默認(rèn)讀取application.yml
,我們開發(fā)的時(shí)候,可以直接啟動(dòng)項(xiàng)目。我們也可以分出一個(gè)dev
的配置,這個(gè)看個(gè)人開發(fā)習(xí)慣。
1.2、啟動(dòng)方式
1.2.1、jar包啟動(dòng)
在區(qū)分出了生產(chǎn)環(huán)境的配置后,我們通過jar包方式啟動(dòng)項(xiàng)目的時(shí)候,增加參數(shù)指定,可以在啟動(dòng)項(xiàng)目的時(shí)候,指定配置文件。代碼如下:
java -jar xxx.jar --spring.profiles.active=prod,druid-prod
注意:
指定多個(gè)配置文件,使用
,
號(hào)分割。啟動(dòng)項(xiàng)目的時(shí)候指定了配置文件,在
yml
中配置的 spring.profiles.active 會(huì)失效
1.2.2、IDEA啟動(dòng)配置
- 在 IDEA 中配置profiles是非常簡(jiǎn)單的。
- 點(diǎn)擊 IDEA 上方菜單Run
- 選擇Edit Configurations...
- 選擇Spring Boot下的 MyProjectServerApplication
- 找到Active profiles輸入框,輸入需要指定的配置文件后綴。例如:prod,druid-prod
- 點(diǎn)擊OK即可。
如下圖:
配置好后,使用IDEA啟動(dòng)項(xiàng)目,就會(huì)自動(dòng)指定配置文件了。不需要的時(shí)候,直接刪掉保存就可以了。
二、項(xiàng)目打包
我們?cè)谏a(chǎn)環(huán)境運(yùn)行的時(shí)候,是使用jar的方式啟動(dòng)的。這里就需要我們將我們的項(xiàng)目打成jar,然后把項(xiàng)目運(yùn)行起來。
項(xiàng)目結(jié)構(gòu)如下:
模塊 | 用途 |
---|---|
my-project-dependencies | 統(tǒng)一的依賴管理 |
my-project-common | 通用模塊 |
my-project-generator | 代碼生成器 |
my-project-server | 項(xiàng)目服務(wù)模塊 |
本次構(gòu)建的項(xiàng)目服務(wù)模塊my-project-server
依賴my-project-dependencies
和my-project-common
。所以需要先把這兩個(gè)模塊install
安裝到本地,以便my-project-server
打包的時(shí)候,可以依賴到這兩個(gè)模塊。
項(xiàng)目打包的方式有多種,這里就簡(jiǎn)單介紹常用的兩種方式。
2.1、IDEA打包
IDEA 打包方法:
- 點(diǎn)擊右側(cè)
Maven
菜單 - 雙擊打開要操作的模塊
- 點(diǎn)擊
Lifecyle
- 雙擊需要進(jìn)行的操作。例如:clean、install、package
如下圖:
步驟:
- install安裝my-project-dependencies
- install安裝my-project-common
- package打包my-project-server
2.2、Maven命令打包
步驟還是跟上個(gè)方式的步驟一致,不一樣的是使用Maven命令
,這里借助bat的方式,一次完成。
在模塊同濟(jì)目錄下創(chuàng)建一個(gè)bin
目錄后,創(chuàng)建批處理文件package.bat
。代碼如下:
cd .. cd my-project-dependencies call mvn install cd .. cd my-project-common call mvn clean install -Dmaven.test.skip=true cd .. cd my-project-server call mvn clean package -Dmaven.test.skip=true cd ..
打包時(shí),只需要執(zhí)行bin
目錄下的package.bat
文件即可完成打包。
-Dmaven.test.skip=true 意思為跳過測(cè)試。項(xiàng)目打包過程中,會(huì)執(zhí)行我們編寫的測(cè)試類。我們?cè)谌粘m?xiàng)目開發(fā)過程中,或多或少會(huì)寫測(cè)試類,這個(gè)參數(shù)就可以在打包的時(shí)候,跳過測(cè)試類的執(zhí)行。
三、項(xiàng)目部署
打包完成后,會(huì)在項(xiàng)目的target
目錄下生成一個(gè)項(xiàng)目的jar包
,這個(gè)就是我們最終運(yùn)行的程序了。如圖所示:
3.1、安裝環(huán)境
打包完成后,我們會(huì)將程序上傳至服務(wù)器進(jìn)行運(yùn)行,服務(wù)器需要安裝Java運(yùn)行環(huán)境。
1)、下載
下載地址:
https://www.oracle.com/java/technologies/downloads/#java8
找到Linux版本進(jìn)行下載,可能需要登錄,登錄下載即可。
2)、創(chuàng)建目錄
mkdir -p /usr/local/java
3)、上傳文件至該目錄
$ ls -al total 144704 drwxr-xr-x 2 root root 4096 Oct 5 15:19 ./ drwxr-xr-x 14 root root 4096 Oct 5 15:18 ../ -rw-r--r-- 1 root root 148162542 Oct 5 15:19 jdk-8u341-linux-x64.tar.gz
4)、解壓縮
tar -zxvf jdk-8u341-linux-x64.tar.gz
5)、配置系統(tǒng)變量
vim /etc/environment
添加如下語句
export JAVA_HOME=/usr/local/java/jdk1.8.0_341 export JRE_HOME=/usr/local/java/jdk1.8.0_341/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
6)、配置用戶環(huán)境變量
vim /etc/profile
添加如下語句
export JAVA_HOME=/usr/local/java/jdk1.8.0_341 export JRE_HOME=/usr/local/java/jdk1.8.0_341/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
環(huán)境變量生效
source /etc/profile
7)、測(cè)試
$ java -version java version "1.8.0_341" Java(TM) SE Runtime Environment (build 1.8.0_341-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
出現(xiàn)正常的版本號(hào),說明安裝成功啦~
3.2、項(xiàng)目啟動(dòng)
創(chuàng)建目錄
mkdir -p /usr/local/apps/my-project
將之前項(xiàng)目打包的jar包
上傳至該目錄
啟動(dòng)項(xiàng)目有多種方式
前臺(tái)啟動(dòng)一,這種方式啟動(dòng),會(huì)在窗口上輸出啟動(dòng)日志,如果關(guān)閉窗口或者Ctrl
+C
,會(huì)終止程序。
java -jar my-project-server-1.0.0-SNAPSHOT.jar
前臺(tái)啟動(dòng)二,這種方式啟動(dòng),也會(huì)在窗口上輸出啟動(dòng)日志,如果Ctrl
+C
,程序依然正常運(yùn)行。
java -jar my-project-server-1.0.0-SNAPSHOT.jar &
后臺(tái)啟動(dòng),這種方式,不會(huì)再窗口上輸出啟動(dòng)日志,如果關(guān)閉窗口程序依然正常運(yùn)行。推薦
nohup java -jar my-project-server-1.0.0-SNAPSHOT.jar &
3.3、最終效果
啟動(dòng)后,訪問http://IP:8899/sys-user/get/all
,即可訪問查詢所有用戶接口
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)動(dòng)態(tài)配置及項(xiàng)目打包部署上線的文章就介紹到這了,更多相關(guān)SpringBoot打包部署上線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot項(xiàng)目jar和war打包部署方式詳解
- springboot實(shí)現(xiàn)maven多模塊和打包部署
- Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟
- Springboot打包部署修改配置文件的方法
- SpringBoot瘦身打包部署的實(shí)現(xiàn)
- Springboot打包部署代碼實(shí)例
- springboot打包部署到linux服務(wù)器的方法
- springboot 打包部署 共享依賴包(分布式開發(fā)集中式部署微服務(wù))
- SpringBoot + Vue 項(xiàng)目部署上線到Linux 服務(wù)器的教程詳解
相關(guān)文章
在RedisTemplate中使用scan代替keys指令操作
這篇文章主要介紹了在RedisTemplate中使用scan代替keys指令操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11java中將漢字轉(zhuǎn)換成拼音的實(shí)現(xiàn)代碼
java中將漢字轉(zhuǎn)換成拼音的實(shí)現(xiàn)代碼。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-10-10深入理解Java class文件格式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
對(duì)于理解JVM和深入理解Java語言, 學(xué)習(xí)并了解class文件的格式都是必須要掌握的功課2017-06-06Java生產(chǎn)1-100的隨機(jī)數(shù)簡(jiǎn)單實(shí)例(分享)
下面小編就為大家?guī)硪黄狫ava生產(chǎn)1-100的隨機(jī)數(shù)簡(jiǎn)單實(shí)例(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報(bào)錯(cuò)問題
本地倉庫是遠(yuǎn)程倉庫的一個(gè)緩沖和子集,當(dāng)你構(gòu)建Maven項(xiàng)目時(shí)首先會(huì)從本地倉庫查找資源,如果沒有那么Maven會(huì)從遠(yuǎn)程倉庫下載到你本地倉庫,這篇文章主要給大家介紹了關(guān)于maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報(bào)錯(cuò)問題的相關(guān)資料,需要的朋友可以參考下2024-01-01