轉載自:https://www.cnblogs.com/zhengxl5566/p/12268615.html
SpringBoot 使用yaml文件實現多配置
SpringBoot利用yaml文件實現多配置有兩種方式:
- 單個yml中編寫多個配置(Multi-profile YAML Documents)
- 編寫多個yml文件,分別代表不同的配置(multiple YAML documents)
下面詳細介紹這兩種方式的使用
一、單個yml中編寫多個配置(Multi-profile YAML Documents)
在一個yml文件中,通過 ---
分隔多個不同配置,根據spring.profiles.active
的值來決定啟用哪個配置,例如:
#公共配置 spring: profiles: active: pro #使用名為pro的配置,這里可以切換成dev datasource: url: jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true password: 123456 username: root --- #開發環境配置 spring: profiles: dev #profiles屬性代表配置的名稱 server: port: 8080 --- #生產環境配置 spring: profiles: pro server: port: 80
二、編寫多個yml文件,分別代表不同的配置(Multiple YAML Documents)
將配置編寫在多個yml文件中,根據spring.profiles.active
的值來決定啟用哪個配置。
配置文件規則如下:
- 文件命名需要符合application-{profile}.yml的格式,如:application-dev.yml
- 通用配置寫到application.yml中,不同的環境配置寫到不同的yml文件中
例如:
application.yml
#公共配置 spring: profiles: active: pro #使用名為pro的配置,這里可以切換成dev datasource: url: jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true password: 123456 username: root
application-dev.yml
server: port: 8080
application-pro.yml
server: port: 80
總結
- 兩種配置方式根據個人喜好使用,但如果配置很多,建議拆成多個yml文件,即方式二。便於維護
- 注意區分二者的不同,不能混用
彩蛋
工程打成jar包后,我們可以通過運行參數指定加載配置,而不用每次都修改配置打新包,例如:
java -jar xxx.jar --spring.profiles.active=pro
參考: