除了預設配置檔案,spring boot 還可以載入一些位於專案外部的配置檔案。我們可以通過如下 2 個引數,指定外部配置檔案的路徑:
我們可以先將 spring boot 專案打包成 jar 檔案,然後在命令列啟動命令中,使用命令列引數 --spring.config.location,指定外部配置檔案的路徑。
#指定配置檔案
server:
port: 8088
2. 執行以下 mvn 命令,將 springbootdemo 專案打包成 jar。
命令執行結果如下圖。
圖1:打包結果
3. 開啟命令列視窗,跳轉到 jar 檔案所在目錄,執行以下命令,其中 --spring.config.location 用於指定配置檔案的新位置。
專案執行結果如下圖。
圖2:使用外部配置執行專案控制台輸出
從控制台輸出可以看出:
4. 使用瀏覽器訪問 「http://localhost:8088/test」,結果如下圖。
圖3:spring.config.location 指定外部配置檔案訪問結果
我們還可以在 spring boot 啟動時,使用命令列引數 --spring.config.additional-location 來載入外部配置檔案。
但與 --spring.config.location 不同,--spring.config.additional-location 不會使專案預設的配置檔案失效,使用該命令列引數新增的外部配置檔案會與專案預設的配置檔案共同生效,形成互補配置,且其優先順序是最高的,比所有預設配置檔案的優先順序都高。
1. 將 springbootdemo 打包為 jar 檔案,開啟命令列視窗,跳轉到該專案 jar 所在目錄下,執行以下命令啟動該專案。
結果如下圖。
圖4:spring boot spring.config.additional-location 指定外部配置檔案專案啟動結果
注意:m**en 對專案進行打包時,位於專案根目錄下的配置檔案是無法被打包進專案的 jar 包的,因此位於根目錄下的預設配置檔案無法在 jar 中生效,即該專案將只載入指定的外部配置檔案和專案類路徑(classpath)下的預設配置檔案,它們的載入優先順序順序為:
根據配置檔案優先順序分析可知:
基於以上配置分析,得出該專案訪問路徑為「http://localhost:8088/helloworld」。
2. 使用瀏覽器訪問 「http://localhost:8088/helloworld/test」,結果如下圖。
圖5:使用 spring.config.additional-location 指定的外部配置檔案訪問結果
通過上面的示例,我們看到將 spring boot 專案打包後,然後在命令列啟動命令中新增 spring.config.additional-location 引數指定外部配置檔案,會導致專案根目錄下的配置檔案無法被載入,我們可以通過以下 3 種方式解決這個問題。在主啟動類中呼叫 system.setproperty()方法新增系統屬性 spring.config.additional-location,指定外部配置檔案。
Spring配置檔案載入外部配置檔案
有時,應用程式可能需要從不同的位置 例如 檔案系統 classpath或者url 讀取外部資源 例如 文字檔案 xml檔案 屬性檔案或或者影象檔案 通常,為了從不同位置載入資源,需要和不同的api打交道。spring的資源載入器提供了乙個統一的getresource 方法,使用這個方法可以通過資源路...
springboot 載入外部配置檔案
開發springboot應用時經常有多個配置檔案,開發的,測試的,生產環境的。而生產環境的敏感資料又不希望洩露出去,所有想看看springboot有沒有辦法載入外部檔案的辦法。因為springboot 預設載入配置檔案的位置是 classpath classpath config file file...
SpringBoot引用外部配置檔案
springboot 專案打jar包後,如果需要修改配置檔案,就需要重新打包。如果打包時配置檔案不計入在內,放在乙個單獨的位置,每次修改時只需修改配置檔案就好,這裡使用官網的乙個方式 官方文件 1.file config 當前 jar 包下新建 config 資料夾,放入配置檔案 2.file 直接...