日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot——不同环境调用不同的配置文件解决方案

發布時間:2024/10/5 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot——不同环境调用不同的配置文件解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

我們在開發Spring Boot應用時,通常同一套程序會被應用和安裝到幾個不同的環境,比如:開發、測試、生產等。其中每個環境的數據庫地址、服務器端口等等配置都會不同,如果在為不同環境打包時都要頻繁修改配置文件的話,那必將是個非常繁瑣且容易發生錯誤的事。

多環境是最常見的配置隔離方式之一,可以根據不同的運行環境提供不同的配置信息來應對不同的業務場景,在Spring Boot內支持了多種配置隔離的方式,可以激活單個或者多個配置文件。

官方文檔

https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#boot-features-profiles?

https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#boot-features-external-config-profile-specific-properties

https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#howto-set-active-spring-profiles

解決方案?

Spring Boot多環境配置

在Spring Boot中多環境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對應你的環境標識,比如:

?? application-dev.properties:開發環境

?? application-test.properties:測試環境

?? application-prod.properties:生產環境

?

激活Profiles方式

方法一:配置文件

application.properties或者application.yml文件中通過spring.profiles.active屬性來設置,其值對應{profile}值。

如:spring.profiles.active=test就會加載application-test.properties配置文件內容

application.properties中配置通用內容,并設置spring.profiles.active=dev,以開發環境為默認配置

application-{profile}.properties中配置各個環境不同的內容

方法二:命令行

命令行方式是一種外部配置的方式,在執行java -jar命令時可以通過--spring.profiles.active=test的方式進行激活指定的profiles列表。

java -jar xxx.jar --spring.profiles.active=dev

針對各環境新建不同的配置文件application-dev.properties、application-test.properties、application-prod.properties

在這三個文件均都設置不同的server.port屬性,如:dev環境設置為8080,test環境設置為9090,prod環境設置為80

application.properties中設置spring.profiles.active=dev,就是說默認以dev環境設置

測試不同配置的加載:

執行java -jar xxx.jar,可以觀察到服務端口被設置為8080,也就是默認的開發環境(dev)

執行java -jar xxx.jar --spring.profiles.active=test,可以觀察到服務端口被設置為9090,也就是測試環境的配置(test)

執行java -jar xxx.jar --spring.profiles.active=prod,可以觀察到服務端口被設置為80,也就是生產環境的配置(prod)

方法三:Java系統屬性

Java系統屬性方式也是一種外部配置的方式,在執行java -jar命令時可以通過-Dspring.profiles.active=test的方式進行激活指定的profiles列表。

使用方式如下所示:

java -Dspring.profiles.active=dev -jar xxx.jar

注意:-D方式設置Java系統屬性要在-jar定義。

方法四:環境變量

在程序代碼的application.properties里的spring.profiles.active=uat不變

在本地的開發環境/IDE所在的電腦上設置spring.profiles.active=dev, 在開發服務器上也設置成dev

uat本地服務器上,設置spring.profiles.active=uat或者不設置它

prod生產服務器上,設置spring.profiles.active=prod

相同的jar或者war包,在不同的服務器上運行不同的環境, 不用再手動修改application.properties文件

Linux/MAC環境下

su rootvim ~/.bash_profile source ~/.bash_profile

在~/.bash_profile里最后一行增加

export SPRING_PROFILES_ACTIVE=dev

Windows環境下

環境變量的配置方式請參考Java環境變量配置,新建一個名為SPRING_PROFILES_ACTIVE的系統環境變量,設置變量的值為dev即可。

系統變量的方式適用于系統下所部署統一環境的SpringBoot應用程序,如統一部署的都是prod環境的應用程序。

優先級

命令行 > Java系統屬性?> 系統變量?> application.yml或application.properties配置文件>application-default.properties

參考文章

springboot 不同環境不同的配置

Spring Boot項目在多環境(開發、生產或測試環境)調用不同配置文件方式

Spring Boot spring.profiles.active 環境變量配置

SpringBoot系列——利用系統環境變量與配置文件的分支選擇實現“智能部署”

SpringBoot激活profiles你知道幾種方式?

總結

以上是生活随笔為你收集整理的Spring Boot——不同环境调用不同的配置文件解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。