profile是Spring對不一樣環境提供不一樣配置功能的支持,能夠經過激活不一樣的環境版本,實現快速切換環境;html
方式一:多配置文件java
咱們在主配置文件編寫的時候,文件名能夠是 application-{profile}.properties/yml
, 用來指定多個環境版本;spring
例如:application-test.properties 表明測試環境配置 application-dev.properties 表明開發環境配置springboot
可是Springboot並不會直接啓動這些配置文件,它默認使用application.properties主配置文件;app
咱們須要經過一個配置來選擇須要激活的環境;運維
#好比在配置文件中指定使用dev環境,咱們能夠經過設置不一樣的端口號進行測試; #咱們啓動SpringBoot,就能夠看到已經切換到dev下的配置了; spring.profiles.active=dev
方式二:yml的多文檔塊spring-boot
和properties配置文件中同樣,可是使用yml去實現不須要建立多個配置文件,更加方便了測試
server: port: 8081 #選擇要激活那個環境塊 spring: profiles: active: prod --- server: port: 8083 #配置環境的名稱 spring: profiles: dev --- server: port: 8084 spring: profiles: prod #配置環境的名稱
注意:若是yml和properties同時都配置了端口,而且沒有激活其餘環境 , 默認會使用properties配置文件的!spa
springboot 啓動會掃描如下位置的application.properties或者application.yml文件做爲Spring boot的默認配置文件命令行
file指的項目 classpath通常指的是java或resources 優先級1:項目路徑下的config文件夾配置文件 –file:./config/ 優先級2:項目路徑下配置文件 –file:./ 優先級3:資源路徑下的config文件夾配置文件 –classpath:/config/ 優先級4:資源路徑下配置文件 –classpath:/
優先級由高到底,高優先級的配置會覆蓋低優先級的配置;
SpringBoot會從這四個位置所有加載主配置文件;互補配置;
咱們在最低級的配置文件中設置一個項目訪問路徑的配置來測試互補問題;
#配置項目的訪問路徑,也就是項目的發佈路徑,代替原來Tomcat中的配置 server.servlet.context-path=/bao
【擴展】指定位置加載配置文件
咱們還能夠經過spring.config.location來改變默認的配置文件位置
項目打包好之後,咱們可使用命令行參數的形式,啓動項目的時候來指定配置文件的新位置;
這種狀況,通常是後期運維作的多,相同配置,外部指定的配置文件優先級最高
java -jar spring-boot-config.jar --spring.config.location=F:/application.properties
外部加載配置文件的方式十分多,咱們選擇最經常使用的便可,在開發的資源文件中進行配置!