springboot yml中profiles的巧妙用法(小白必看多環境配置)

遙想當年我還是個小白的時候,就隻是寫寫demo,也就在一套環境上跑跑,真正當實戰的時候,除瞭你本地環境,還有開發環境,測試環境,生產環境(上線)等等。

如果你不知道用這個profiles,那麼這麼多套環境,用一種老古董的寫法就是這樣,用哪個環境就把其他環境註釋掉!

spring:
  datasource:
    username: root          							#dev
    password: 123456									#dev
    #username: root2									#test
    #password: 456789									#test
    ...

這還隻2個環境的數據庫賬號密碼而已,真正的配置比這要多瞭去瞭!

這個時候profiles的妙用就體現出來瞭!用active指定當前使用的環境

spring:
  profiles:
    active: local

在下面用 — 來隔開環境,用profiles來指定這個配置環境名稱。

spring:
  profiles: local
  datasource:
    username: root          						
    password: 123456
---
spring:
  profiles: dev						
    username: root2									
    password: 456789
---  								
    ...

當然這樣環境多瞭,整個yml也是很亂,所以這個時候我們是可以把這些環境撈出來,放在一個單獨的yml中,以 application-{profile}.yml 的格式。

這個{profile}就是你的環境名!如下

在這裡插入圖片描述

一個application.yml 放基本的配置,和使用哪個環境。

然後下面這些各式各樣的yml就可以用來存各個環境的數據庫配置,服務註冊等。

在這裡插入圖片描述

而且會優先使用配置的環境中的,比如我在local環境中配置瞭一個端口號,輸出的就是local環境中的端口號。

在這裡插入圖片描述

當我去掉local中配置的端口號,就會用默認配置的端口號

在這裡插入圖片描述

springboot Failed to load ApplicationContext

如果遇到這個錯,可能是配置不對,例如我是把數據庫配置單獨丟進去local瞭,當我使用dev環境時,裡面沒有數據庫配置,最後的application.yml中也報錯瞭,程序中有數據庫交互的接口,所有就報異常瞭!

要麼在dev中補充,要麼在application.yml中補充,我個人建議在dev補充。

因為這樣才能保證各個環境不會有出現問題,application.yml隻配通用的東西!

其他妙用(用時補充) 配置logback中也可以用到 配置swagger也可以用到

到此這篇關於springboot yml中profiles的妙用小白必看多環境配置的文章就介紹到這瞭,更多相關springboot yml使用profiles內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: