SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能
寫在前面
本文講解的是如何使用Spring動態(tài)配置文件,實現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用 Maven 打包,然后上傳至Linux服務(wù)器進行部署。(PS:如果你是新手,可以跟著系列專欄的框架搭建先動手把項目搭建起來,然后在結(jié)合本期內(nèi)容繼續(xù)深入學習,這樣會有更好的效果。)
一、動態(tài)配置文件

在定制鏡像前,我們需要了解Spring動態(tài)指定配置文件的方式,來提高我們的部署效率。
1.1、概述
在實際企業(yè)開發(fā)中,開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境通常采用不同的數(shù)據(jù)庫等中間件的連接方式。如果此時我們按照目前的方式,只有一個application.yml配置文件,那么我們在不同環(huán)境下啟動項目,都需要更改配置文件中的各種連接信息,雖然目前我們需要更改的連接地址少,但是每次去手動的更改這些信息,人工改的話是非常容易改錯的。
Spring 提供了可以指定配置文件啟動的方式,這樣使得我們可以靈活的切換配置文件。
目前項目中也使用了這個指定配置文件的方式,只不過是在配置文件中指定的。代碼如下圖:

我們要做的是,在啟動的時候指定。我們需要復(fù)制配置文件application.yml和application-druid.yml,命名為application-prod.yml和application-druid-prod.yml,用來區(qū)分開發(fā)環(huán)境和生產(chǎn)環(huán)境,多個環(huán)境同理。
不指定配置文件,默認讀取application.yml,我們開發(fā)的時候,可以直接啟動項目。我們也可以分出一個dev的配置,這個看個人開發(fā)習慣。
1.2、啟動方式
1.2.1、jar包啟動
在區(qū)分出了生產(chǎn)環(huán)境的配置后,我們通過jar包方式啟動項目的時候,增加參數(shù)指定,可以在啟動項目的時候,指定配置文件。代碼如下:
java -jar xxx.jar --spring.profiles.active=prod,druid-prod
注意:
指定多個配置文件,使用
,號分割。啟動項目的時候指定了配置文件,在
yml中配置的 spring.profiles.active 會失效
1.2.2、IDEA啟動配置
- 在 IDEA 中配置profiles是非常簡單的。
- 點擊 IDEA 上方菜單Run
- 選擇Edit Configurations...
- 選擇Spring Boot下的 MyProjectServerApplication
- 找到Active profiles輸入框,輸入需要指定的配置文件后綴。例如:prod,druid-prod
- 點擊OK即可。
如下圖:


配置好后,使用IDEA啟動項目,就會自動指定配置文件了。不需要的時候,直接刪掉保存就可以了。
二、項目打包
我們在生產(chǎn)環(huán)境運行的時候,是使用jar的方式啟動的。這里就需要我們將我們的項目打成jar,然后把項目運行起來。
項目結(jié)構(gòu)如下:
| 模塊 | 用途 |
|---|---|
my-project-dependencies | 統(tǒng)一的依賴管理 |
my-project-common | 通用模塊 |
my-project-generator | 代碼生成器 |
my-project-server | 項目服務(wù)模塊 |
本次構(gòu)建的項目服務(wù)模塊my-project-server依賴my-project-dependencies和my-project-common。所以需要先把這兩個模塊install安裝到本地,以便my-project-server打包的時候,可以依賴到這兩個模塊。
項目打包的方式有多種,這里就簡單介紹常用的兩種方式。
2.1、IDEA打包
IDEA 打包方法:
- 點擊右側(cè)
Maven菜單 - 雙擊打開要操作的模塊
- 點擊
Lifecyle - 雙擊需要進行的操作。例如:clean、install、package
如下圖:

步驟:
- install安裝my-project-dependencies
- install安裝my-project-common
- package打包my-project-server
2.2、Maven命令打包
步驟還是跟上個方式的步驟一致,不一樣的是使用Maven命令,這里借助bat的方式,一次完成。
在模塊同濟目錄下創(chuàng)建一個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 ..
打包時,只需要執(zhí)行bin目錄下的package.bat文件即可完成打包。
-Dmaven.test.skip=true 意思為跳過測試。項目打包過程中,會執(zhí)行我們編寫的測試類。我們在日常項目開發(fā)過程中,或多或少會寫測試類,這個參數(shù)就可以在打包的時候,跳過測試類的執(zhí)行。
三、項目部署
打包完成后,會在項目的target目錄下生成一個項目的jar包,這個就是我們最終運行的程序了。如圖所示:

3.1、安裝環(huán)境
打包完成后,我們會將程序上傳至服務(wù)器進行運行,服務(wù)器需要安裝Java運行環(huán)境。
1)、下載
下載地址:
https://www.oracle.com/java/technologies/downloads/#java8
找到Linux版本進行下載,可能需要登錄,登錄下載即可。

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)、測試
$ 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)正常的版本號,說明安裝成功啦~
3.2、項目啟動
創(chuàng)建目錄
mkdir -p /usr/local/apps/my-project
將之前項目打包的jar包上傳至該目錄

啟動項目有多種方式
前臺啟動一,這種方式啟動,會在窗口上輸出啟動日志,如果關(guān)閉窗口或者Ctrl+C,會終止程序。
java -jar my-project-server-1.0.0-SNAPSHOT.jar
前臺啟動二,這種方式啟動,也會在窗口上輸出啟動日志,如果Ctrl+C,程序依然正常運行。
java -jar my-project-server-1.0.0-SNAPSHOT.jar &
后臺啟動,這種方式,不會再窗口上輸出啟動日志,如果關(guān)閉窗口程序依然正常運行。推薦
nohup java -jar my-project-server-1.0.0-SNAPSHOT.jar &
3.3、最終效果
啟動后,訪問http://IP:8899/sys-user/get/all,即可訪問查詢所有用戶接口

到此這篇關(guān)于SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線的文章就介紹到這了,更多相關(guān)SpringBoot打包部署上線內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project
這篇文章主要介紹了IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
Java實現(xiàn)簡單的銀行管理系統(tǒng)的示例代碼
這篇文章主要介紹了如何利用Java實現(xiàn)簡單的銀行管理系統(tǒng),可以實現(xiàn)存款,取款,查詢等功能,文中的示例代碼講解詳細,感興趣的可以了解一下2022-09-09

