新聞中心
在實(shí)際項(xiàng)目開發(fā)的過程中,需要面對(duì)不同的運(yùn)行環(huán)境,比如開發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境等,每個(gè)運(yùn)行環(huán)境的數(shù)據(jù)庫、Redis服務(wù)器等配置都不相同,每次發(fā)布測(cè)試、更新生產(chǎn)都需要手動(dòng)修改相關(guān)系統(tǒng)配置。這種方式特別麻煩,費(fèi)時(shí)費(fèi)力,而且出錯(cuò)的概率極大。慶幸的是,Spring Boot為我們提供了更加簡(jiǎn)單方便的配置方案來解決多環(huán)境的配置問題,下面就來演示Spring Boot系統(tǒng)如何實(shí)現(xiàn)多環(huán)境配置。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)10年經(jīng)驗(yàn)成就非凡,專業(yè)從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文發(fā)布平臺(tái),廣告投放平臺(tái)等。10年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:028-86922220,我們期待您的來電!
一、多環(huán)境的配置
通常應(yīng)用系統(tǒng)可能在開發(fā)環(huán)境(dev)、測(cè)試環(huán)境(test)、生產(chǎn)環(huán)境(prod)中運(yùn)行,那么如何做到多個(gè)運(yùn)行環(huán)境配置靈活、快速切換呢?SpringBoot提供了極簡(jiǎn)的解決方案,只需要簡(jiǎn)單的配置,應(yīng)用系統(tǒng)就能靈活切換運(yùn)行環(huán)境配置。
1. 創(chuàng)建多環(huán)境配置文件
創(chuàng)建多環(huán)境配置文件時(shí),需要遵循Spring Boot允許的命名約定來命名,格式為application-{profile}.properties,其中{profile}為對(duì)應(yīng)的環(huán)境標(biāo)識(shí)。在項(xiàng)目resources目錄下分別創(chuàng)建application-dev.properties、application-test.properties和application-prod.properties三個(gè)配置文件,對(duì)應(yīng)開發(fā)環(huán)境、測(cè)試環(huán)境和生產(chǎn)環(huán)境,如下圖所示:
根據(jù)應(yīng)用系統(tǒng)中常見的三個(gè)運(yùn)行環(huán)境拆分成了多個(gè)不同的配置文件,分別獨(dú)立配置上面各運(yùn)行環(huán)境的配置項(xiàng)。具體如下所示:
- application.properties為項(xiàng)目主配置文件,包含項(xiàng)目所需的所有公共配置。
- application-dev.properties為開發(fā)環(huán)境配置文件,包含項(xiàng)目所需的單獨(dú)配置。
- application-test.properties為測(cè)試環(huán)境配置文件。
- application-prod.properties為生產(chǎn)環(huán)境配置文件。
2. 修改配置文件
通常情況下,開發(fā)環(huán)境、測(cè)試環(huán)境和生產(chǎn)環(huán)境使用的數(shù)據(jù)庫是不一樣的,所以接下來以不同環(huán)境配置不同數(shù)據(jù)庫為例來演示多環(huán)境的配置。
首先,修改application.properties,配置系統(tǒng)的啟動(dòng)端口:
# 服務(wù)器端口配置
server.port=8088
在上面的示例中,application.properties包含項(xiàng)目所需的所有公共配置,這里配置系統(tǒng)的啟動(dòng)端口,所有環(huán)境的啟動(dòng)端口都是8088。
然后,修改application-dev.properties開發(fā)環(huán)境的配置,增加數(shù)據(jù)庫的連接配置,代碼示例如下:
# 指定數(shù)據(jù)庫驅(qū)動(dòng)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 數(shù)據(jù)庫jdbc連接url地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp_dev
# 數(shù)據(jù)庫賬號(hào)
spring.datasource.username=root
spring.datasource.password=root
配置數(shù)據(jù)庫連接的相關(guān)屬性,我們看到開發(fā)環(huán)境配置的數(shù)據(jù)庫是myapp_dev。
其他環(huán)境的配置文件修改對(duì)應(yīng)的配置連接即可,以上項(xiàng)目的多環(huán)境配置就完成了。接下來演示切換項(xiàng)目運(yùn)行環(huán)境。
二、多環(huán)境的切換
前面講了如何配置多環(huán)境,那么,在實(shí)際測(cè)試、運(yùn)行過程中如何切換系統(tǒng)運(yùn)行環(huán)境呢?這個(gè)也非常簡(jiǎn)單,通過修改application.properties配置文件中的spring.profiles.active配置項(xiàng)來激活相應(yīng)的運(yùn)行環(huán)境。如果沒有指定任何profile的配置文件,Spring Boot默認(rèn)會(huì)啟動(dòng)application-default.properties(默認(rèn)環(huán)境)。
指定項(xiàng)目的啟動(dòng)環(huán)境有以下三種方式:
(1)配置文件指定項(xiàng)目啟動(dòng)環(huán)境
Spring Boot支持通過spring.profiles.active配置項(xiàng)目啟動(dòng)環(huán)境,在application.properties配置文件中增加如下配置項(xiàng)指定對(duì)應(yīng)的環(huán)境目錄:
# 系統(tǒng)運(yùn)行環(huán)境
spring.profiles.active=dev
在上面的示例中,通過在application.properties配置文件中設(shè)置spring.profiles.active的配置項(xiàng)來配置系統(tǒng)的運(yùn)行環(huán)境。這里配置的是dev開發(fā)環(huán)境。
(2)IDEA編譯器指定項(xiàng)目啟動(dòng)環(huán)境
一般在IDEA啟動(dòng)時(shí),直接在IDEA的Run/debug Configuration頁面配置項(xiàng)目啟動(dòng)環(huán)境,如下圖所示。
項(xiàng)目調(diào)試運(yùn)行時(shí),IDEA編譯器可以通過VM options、Program arguments、Active profiles三個(gè)參數(shù)設(shè)置啟動(dòng)方式。
(3)命令行啟動(dòng)指定項(xiàng)目環(huán)境
在命令行通過java-jar命令啟動(dòng)項(xiàng)目時(shí),需要如下指定啟動(dòng)環(huán)境:
java -jar xxx.jar --spring.profiles.active=dev
如上所示,程序打包之后,可以在命令行使用java –jar的方式啟動(dòng),并設(shè)置啟動(dòng)參數(shù)spring.profiles.active=dev,以開發(fā)環(huán)境為默認(rèn)配置。在application-{profile}.properties中配置完成后,啟動(dòng)項(xiàng)目時(shí),在系統(tǒng)啟動(dòng)日志中可以看到加載的是哪個(gè)環(huán)境的配置文件,如下圖所示:
在上面的啟動(dòng)日志中可以看到系統(tǒng)目前啟動(dòng)的是dev開發(fā)環(huán)境。如果實(shí)現(xiàn)相關(guān)的數(shù)據(jù)庫測(cè)試方法,可以驗(yàn)證相應(yīng)的數(shù)據(jù)庫操作是否生效。
最后
以上,我們就把Spring Boot 多環(huán)境配置介紹完了。Spring Boot 多環(huán)境配置是非?;A(chǔ),非常重要的功能,也是Spring Cloud 配置中心的基本配置。
當(dāng)前標(biāo)題:實(shí)戰(zhàn)!三分鐘搞定Spring Boot 多環(huán)境配置
文章位置:http://fisionsoft.com.cn/article/cdigpgh.html


咨詢
建站咨詢
