spring boot 服務啟動時no active profile set, falling back to default profiles: default的問題

NetSnake_發表於2020-10-22

1.啟動時no active profile set, falling back to default profiles: default

相信有不少細心小夥伴在新啟動一個spring boot專案時候會發現這樣一條資訊no active profile set, falling back to default profiles: default。為什麼會出現這樣的提示呢,我們先來看看profile,profile是Spring對不同環境提供不同配置功能的支援,可以通過啟用、 指定引數等方式快速切換環境Profile。舉個例子我們在開發,測試,生產用到的配置是不同的,那麼通過profile就可以幫我們指定對應的環境用對應的配置,那麼如何來指定呢?

2020-04-20 12:20:17.922  INFO 7824 --- [  restartedMain] c.e.s.SpringbootcacheApplication         : No active profile set, falling back to default profiles: default

2.多profile檔案形式:

– 格式:application-{profile}.properties/yml: application-dev.properties、application-prod.properties .我們可以通過application-{profile}.properties/yml的方式指定並啟用不同的profile配置。

3.多profile配置啟用

先給出我們需要配置的檔案目錄,這裡舉例是yml檔案,如下圖所示。然後具體有以下5種方法可以來指定並啟用我們需要的配置。

3.1通過properties檔案指定

很簡單,比如我們要使用application-dev.yml的配置,那麼在application.properties中寫上spring.profiles.active=dev,那麼我們的application-dev.yml的配置就被啟用了,那麼如何測試結果呢,很簡單,我們在application-dev.yml指定服務啟動埠,啟動spring boot 服務,看看是不是8081埠就好了。

  1. server:

  2. port: 8081

 可以看到The following profiles are active: dev,然後啟動的埠是8081說明我們想要的配置生效了,指定其他配置比如test,只要修改spring.profiles.active=test。

 
  1. 2020-04-20 13:02:05.144 INFO 19832 --- [ restartedMain] c.e.s.SpringbootcacheApplication : The following profiles are active: dev

  2. 2020-04-20 13:02:05.785 INFO 19832 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http)

 

3.2通過yml文件塊指定

在yml配置檔案中通過---的形式來劃分文件塊,通過圖中active: xx (注意中間有個空格,這是yml的基本格式)指定的值來啟用相應的配置檔案。

比如active: dev,那麼application-dev.yml這個配置檔案被啟用。

3.3通過configuration中的Program agruments指定

在configuration中的program arguments 中寫入--spring.profiles.active=dev。

3.4通過configuration中的VM options指定

在configuration中的VM options配置項中填寫:-Dspring.profiles.active=dev.

3.5通過configuration中的Enviroment variables指定

在configuration中的Enviroment variables 配置項上寫入:spring.profiles.active=dev

4.配置優先順序

program arguments  >  VM options  >  Enviroment variables  >proties 檔案> yml檔案

相關文章