SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能
寫在前面
本文講解的是如何使用Spring動態(tài)配置文件,實現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用 Maven 打包,然后上傳至Linux服務(wù)器進(jìn)行部署。(PS:如果你是新手,可以跟著系列專欄的框架搭建先動手把項目搭建起來,然后在結(jié)合本期內(nèi)容繼續(xù)深入學(xué)習(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)境同理。
不指定配置文件,默認(rèn)讀取application.yml
,我們開發(fā)的時候,可以直接啟動項目。我們也可以分出一個dev
的配置,這個看個人開發(fā)習(xí)慣。
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
- 雙擊需要進(jìn)行的操作。例如:clean、install、package
如下圖:
步驟:
- install安裝my-project-dependencies
- install安裝my-project-common
- package打包my-project-server
2.2、Maven命令打包
步驟還是跟上個方式的步驟一致,不一樣的是使用Maven命令
,這里借助bat的方式,一次完成。
在模塊同濟(jì)目錄下創(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ù)器進(jìn)行運行,服務(wù)器需要安裝Java運行環(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)、測試
$ 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)文章
在RedisTemplate中使用scan代替keys指令操作
這篇文章主要介紹了在RedisTemplate中使用scan代替keys指令操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11java中將漢字轉(zhuǎn)換成拼音的實現(xiàn)代碼
java中將漢字轉(zhuǎn)換成拼音的實現(xiàn)代碼。需要的朋友可以過來參考下,希望對大家有所幫助2013-10-10深入理解Java class文件格式_動力節(jié)點Java學(xué)院整理
對于理解JVM和深入理解Java語言, 學(xué)習(xí)并了解class文件的格式都是必須要掌握的功課2017-06-06Java生產(chǎn)1-100的隨機(jī)數(shù)簡單實例(分享)
下面小編就為大家?guī)硪黄狫ava生產(chǎn)1-100的隨機(jī)數(shù)簡單實例(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報錯問題
本地倉庫是遠(yuǎn)程倉庫的一個緩沖和子集,當(dāng)你構(gòu)建Maven項目時首先會從本地倉庫查找資源,如果沒有那么Maven會從遠(yuǎn)程倉庫下載到你本地倉庫,這篇文章主要給大家介紹了關(guān)于maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報錯問題的相關(guān)資料,需要的朋友可以參考下2024-01-01