在實際的的開發中,對於一個工程,常常配置不少個Profile(配置文件),每一個Profile都對應一個完整的全局配置,例如開發環境(application-dev.properties)、測試環境(application-test.properties)、生產環境(application-prod.properties)等。在不一樣的環境下,配置有多是不同的。SpringBoot 提供能夠很方便地切換不一樣場景下的配置文件,激活哪一個,其對應的全局配置就生效。spring
一、properties 格式全局配置文件的作法:app
默認必需要有 application.properties 文件,同時能夠多寫幾個配置文件,名字取爲 application-xxx.properties,ide
而後不作激活配置,默認就使用application.properties,在application.properties作激活配置,激活哪一個,哪一個生效。測試
配置端口號,經過 spring.profiles.active=xxx 來激活,運行程序主類,查看OKidea
二、YAML格式全局配置文件的作法spa
1)YAML格式全局配置文件,在同一個application.yml全局配置文件進行多文檔塊方式配置 .net
注意:有兩個以上沒定義文檔快名稱的,以最後一個文檔快做爲全局配置文件,因此文檔塊記得取名。命令行
2)爲了更方便維護各類環境的配置,能夠將 yml文件拆分blog
在src/main/resource目錄下,再建立yml配置文件(不須要定義文檔塊和命名spring.profiles屬性),開發
文件命名規則爲application-{profiles}.yml,而後,在原來application.yml 作激活配置,激活哪一個,哪一個生效。
三、除了在上面默認全局配置文件裏激活Profile之外,還可用 IDEA命令方式激活,命令方式激活時會忽略配置文件的激活配置
1)在idea中配置命令行參數
任意選擇一種便可,優先級高於配置文件激活
-Dspring.profiles.active=xxx
--spring.profiles.active=xxx
xxx
2)將項目打成 jar 包後,在啓動 jar包命令後添加激活配置文件的命令參數
優先級高於配置文件激活和IDEA激活
一、當前項目中配置文件
SpringBoot配置文件能夠放置在多種路徑下,不一樣路徑下的配置優先級有所不一樣。默認會掃描這幾個放置目錄的默認配置文件:
當前項目的根目錄/config/ # 最高優先級
當前項目的根目錄/ # 第二優先級
類路徑(在resources目錄下)/config/ # 第三優先級
類路徑(在resources目錄下)/ # 第四優先級
若是這四個位置都有配置文件,那麼四個配置文件都會生效,只不過四個配置文件中的相同配置項,生效的是高優先級的配置文件裏的配置項。即:優先級由高到底,高優先級的配置會覆蓋低優先級的相同配置項並互補配置。
配置端口號,運行程序主類,查看OK, 優先級:8081 --> 8082 --> 8083 --> 8084 .
二、外部配置文件
在項目已打包運行後,若須要修改配置文件時,能夠在jar包的外面,新建一個外部配置文件,
而後在運行jar包命令後添加激活外部配置文件的命令參數 (--spring.config.location=文件路徑),
那麼這個新的外部配置文件會覆蓋jar包中配置文件裏相同的配置項信息。即:外部配置文件優先級最高。
將上面項目打包,新建一個外部配置文件,端口號爲 8079.
原文連接:https://blog.csdn.net/qq_42402854/article/details/9016804