profile是Spring對不同環境提供不同配置功能的支持,可以通過激活不同的環境版本,實現快速切換環境;
多配置文件
我們在主配置文件編寫的時候,文件名可以是 application-{profile}.properties/yml , 用來指定多個環境版本;
例如:
application-test.properties 代表測試環境配置
application-dev.properties 代表開發環境配置
但是Springboot並不會直接啟動這些配置文件,它默認使用application.properties主配置文件;
我們需要通過一個配置來選擇需要激活的環境:
比如在配置文件中指定使用dev環境,我們可以通過設置不同的端口號進行測試;
我們啟動SpringBoot,就可以看到已經切換到dev下的配置了;
spring.profiles.active=dev
yaml的多文檔塊
和properties配置文件中一樣,但是使用yml去實現不需要創建多個配置文件,更加方便了 !
server:
port: 8081
#選擇要激活那個環境塊
spring:
profiles:
active: prod
---
server:
port: 8083
spring:
profiles: dev #配置環境的名稱
---
server:
port: 8084
spring:
profiles: prod #配置環境的名稱
注意:如果yml和properties同時都配置了端口,並且沒有激活其他環境 , 默認會使用properties配置文件的!
配置文件加載位置
外部加載配置文件的方式十分多,我們選擇最常用的即可,在開發的資源文件中進行配置!
官方外部配置文件說明參考文檔
圖片
springboot 啟動會掃描以下位置的application.properties或者application.yml文件作為Spring boot的默認配置文件:
application.properties 優先級從高到低,application.yml文件優先級也一樣
級別高的會覆蓋級別低的,級別高沒有的,級別低有的配置項會同樣生效
1、-- 項目根目錄config文件夾里面(優先級最高)
./config/
2、--項目根目錄
./
3、-- src/main/resources/config/文件夾里面
classpath:/config
4、-- src/main/resources/
#classpath:/
1-4優先級從高到低,優先級高的配置內容會覆蓋優先級低的配置內容
server.port=8081
優先級由高到底,高優先級的配置會覆蓋低優先級的配置;