首頁>技術>

在實際企業開發中,應用一般至少有3個環境,開發、測試、uat、生產等環境,對於不同的環境應該有自己的配置,否則每個環境的釋出會很麻煩,並且對運維很不友好。使用Spring Boot的Profile可以實現多場景下的配置切換,方便開發中進行測試和部署生產環境

青鋒開源專案地址

Gitee: https://gitee.com/msxy/qingfeng

關注青鋒:獲得更多技術支援和開源資料。

1.1 建立應用配置

application.yml檔案分為3部分,使用 --- 來作為分隔符,第一部分通用配置部分,表示2個環境都通用的屬性, 後面2段分別為:預設,開發,用spring.profiles指定了一個值(開發為dev,測試為test,生產為prod),這個值表示該段配置應該用在哪個profile裡面,其中test 單獨建立一個配置檔案,預設的application-{profile}.yml的方式來指定不同環境的配置。使用spring.profiles.active指定設定的spring.profiles名稱

如果spring.profiles.active沒有指定值,那麼只會使用沒有指定spring.profiles檔案的值,也就是隻會載入通用的配置

server:  port: 8773spring:  application:    name: fw-profile  profiles:    active: dev---spring:  profiles: devversion: dev---spring:  profiles: prodversion: prod

application-test.yml內容

spring:  profiles: testversion: test
1.2 建立控制層

在控制層建立一個獲取配置資訊的方法,裡面的內容使用@Value("${version}")從配置檔案中獲取具體的值,同過修改不同的profile來驗證獲取值的不同。

@RestControllerpublic class HelloController {    @Value("${version}")    String version;    /**     * 獲取版本資訊     * @return     */    @GetMapping("/version")    public String getVersion(){        return version;    }}
1.3 應用啟動

設定spring.profiles.active指定的profile為dev瀏覽器或Postman輸入localhost:8773/version

修改spring.profiles.active指定的profile為test

1.4 應用部署

可以在啟動的時候指定spring.profiles.active來啟動

java -jar xxx.jar --spring.profiles.active=test 表示使用測試環境的配置java -jar xxx.jar --spring.profiles.active=prod 表示使用生產環境的配置
1.5 Maven Profile

我們使用的是構建工具是Maven,也可以透過Maven的profile特性來實現多環境配置啟動和打包

將之前的配置刪除並在pom中設定maven資訊,我們設定dev、test、uat、prod4個環境的配置資訊,並且執行dev 是預設的配置資訊,設定配置目錄為src/main/resources/config/${profiles.active},新建配置資訊如下圖所示。

修改spring.profiles.active指定的profile為test

可以看到和之前透過spring.profiles.active結果是一樣的。

1.7 maven 方式打包

透過執行mvn clean package -P ${profile}來指定使用哪個profile,然後啟動的時候直接java -jar xxx.jar,不需要實行profile

兩種方式都可以,推薦使用maven方式來啟動和打包,maven方式打的包只會將自己需要的配置檔案打包,不會講其它profile也打包進來,如果僅僅透過解壓jar包只會獲取當前profile的配置資訊。相對較安全,而且方便CICD構建和部署。

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 前端畫圖canvas基本操作