SpringBoot中的配置檔案分離
阿新 • • 發佈:2021-08-16
0.背景
idea中新建好springboot專案後,預設的配置檔案是放在resource目錄下的,這個時候進行打包,配置檔案會打包到jar中,每次更新配置資訊都需要重新打jar包部署,比較麻煩.
目的:將配置檔案分離,其他位置存放好配置檔案後,在啟動jar時指定配置檔案,實現靈活切換
1.預設的配置檔案
1.1 application.properties
SpringBoot程式預設從application.properties
或者application.yaml
讀取配置,且application.properties>application.yaml
外接配置檔案
Spring程式會按優先順序從下面這些路徑來載入application.properties配置檔案
- 當前目錄下的/config目錄
- 當前目錄
- classpath裡的/config目錄
- classpath 跟目錄
eg:在jar所在目錄新建config資料夾,然後放入配置檔案,或者直接放在配置檔案在jar目錄.
1.2 application-xx.properties
不同環境設定一個配置檔案,帶
application-
字首都會識別成預設的.
eg:application-dev.properties、application-prod.properties
1.3 啟動命令
java -jar xx.jar --spring.profiles.active=dev
1.4 擴充套件
你也可以直接在application.properties中指定使用哪一個檔案
spring.profiles.active = dev
啟動時,會自動根據填寫的引數值,讀取對應的配置檔案進行載入.
2.自定義的配置檔案
2.1 啟動時指定
多個配置檔案用英文逗號分隔
# 需要在classpath目錄中 java -jar xxx.jar --spring.config.location=classpath:/自定義配置檔案1.properties,classpath:/自定義配置檔案2.properties # 絕對路徑指定 java -jar xxx.jar --Dspring.config.location=絕對路徑\自定義配置檔案3.properties
2.2 程式碼中指定
2.2.1 在application.properties檔案中指定一個檔案路徑
eg:路徑配置如下
xx.pathConfig.path = D:/Projects/GitWorks/path.properties
2.2.2 編寫載入類
這樣啟動時就會先加載出application.properties中
${xx.pathConfig.path}
的值,然後加載出這個定義的配置檔案.只要修改application.properties中配置的自定義檔案路徑,就可以切換到不同的配置檔案.
package xx.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
* @Description: 請求詳細地址的配置檔案: icbc-path.properties
* @Class: PathConfig
* @Author: Yiang37
* @Date: 2021/7/15 10:00
* @Version: 1.0
*/
// file絕對路徑.
// @PropertySource("classpath:/xx.properties")這種是classpath相對路徑
@PropertySource(value = {"file:${xx.pathConfig.path}"}, encoding="utf-8")
@Configuration
public class PathConfig {
}
2.2.3 啟動命令
java -jar xx.jar --spring.profiles.active=dev