SpringBoot2.0學習筆記:(三) Profiles在Spring Boot中的使用

一、簡單介紹

在項目的開發中,有些配置文件在開發、測試或者生產等不同環境中可能是不同的,例如數據庫連接、redis的配置等等。那我們如何在不同環境中自動實現配置的切換呢?Spring給我們提供了profiles機制,下面看看在Spring Boot中是如何使用Profiles功能的。

在Spring Boot中多環境配置文件名需要使用application-{profile}.properties的格式,這裏的**{profile}**對應的是你的環境標識。例如:

  • application-dev.properties — 這是開發環境
  • application-prod.properties — 這是生產環境

二、激活指定profile

我們在首先在Resource目錄下新建兩個配置文件,分別命名爲application-dev.properties以及application-prod.properties,爲了方便看到區別,我們分別在三個配置文件中分別指定tomcat啓動端口:

這裏寫圖片描述

application.properties

server.port=8081

application-dev.properties

server.port=8082

application-prod.properties

server.port=8083

這個時候我們沒有指定任何profile,執行啓動類的main方法,可以看到:

Tomcat started on port(s): 8081 (http) with context path ''

程序會默認加載application.properties中的配置,我們想要使用對應的環境,只需要在application.properties中使用spring.profiles.active屬性來設置,值對應上面提到的{profile},這裏就是指dev、prod:

server.port=8081
spring.profiles.active=dev

重新啓動Main方法:

Tomcat started on port(s): 8082 (http) with context path ''

可以看到tomcat啓動端口爲8082。

####從上面的結果可以看出,application-dev.properties中的配置覆蓋了application.propertie中的配置。我們在配置文件中可以將與環境無關的屬性放到application.propertie中進行配置,而根據環境的變化而變化的配置放到各個application-{profile}.properties文件中。

三、激活profile的方式

上面展示了第一種激活profile的方式,即在application.properties中指定屬性spring.profiles.active的值。但是這種方式在實際項目中的使用並不合適,因爲你每次提交代碼還要手動修改pring.profiles.active的值。

第二種可以使用命令行的方式,Spring Boot的程序一般是打成jar包,在使用java -jar 執行jar包的時候,可以再後面加上:

--spring.profiles.active=dev;

例如

java -jar target/spring-boot-helloworld-0.0.1.jar --spring.profiles.active=prod

可以看到啓動端口爲:

Tomcat started on port(s): 8083 (http) with context path ''

若是使用IDEA進行開發的話,還可以修改啓動配置:

這裏寫圖片描述

這裏寫圖片描述

之後執行Main方法,依然激活了dev的配置。

第三種是修改虛擬機的配置,在虛擬機配置哪裏加上:

-Dspring.profiles.active=dev

這裏寫圖片描述

之後執行Main方法,同樣激活了dev的配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章