首頁 > Java > java教程 > SpringBoot怎麼將設定檔掛到jar包外面

SpringBoot怎麼將設定檔掛到jar包外面

WBOY
發布: 2023-05-15 15:01:06
轉載
4584 人瀏覽過

    一、SpringBoot 指定設定檔路徑:

    在SpringBoot 中,可以將設定檔放在jar 套件外面,這樣可以方便地修改設定而不需要重新打包和部署。

    以下是指定設定檔目錄的幾種方法: (按生效優先順序從高到低排序)

    #1)使用命令列參數:

    在啟動應用程式時,可以使用--spring.config.location-Dspring.config.location 命令列參數來指定設定檔的路徑,例如:( config 後面的/ 不可省略

    java -jar test.jar --spring.config.location=/opt/app/config/
    登入後複製

    補充:FHS將/opt定義為「為安裝附加應用軟體包而保留」。所以這裡選擇 /opt 資料夾來存放應用程式的設定檔。

    2)使用環境變數:

    可以設定SPRING_CONFIG_LOCATION 環境變數來指定設定檔的路徑,例如:

    export SPRING_CONFIG_LOCATION=/opt/app/config/
    java -jar test.jar
    登入後複製

    3)使用外部配置檔案:

    • 方法一: 在應用程式(jar套件)啟動指令執行目錄下 建立一個名為config 的資料夾,然後將設定檔放在該資料夾中。

    • 方法二: 在應用程式(jar套件)同級目錄下 建立一個名為config 的資料夾,然後將設定檔放在該資料夾中。在程式碼的設定檔application.propertiesapplication.yml 中新增以下行:

    spring.config.name=application
    spring.config.location=classpath:/,file:./config/
    登入後複製
    • #方法三: 在應用程式(jar套件)同級目錄下 直接放propertiesyml 設定檔。

    • 方法四: 在應用程式(jar套件)內部的classpath同級目錄下,創建config 資料夾,然後放上propertiesyml 設定檔。

    • 方法五: 在應用程式(jar套件)內部的classpath同級目錄下,然後直接放propertiesyml 設定檔。

    注意:以上方法可以組合使用,例如,可以在命令列參數和環境變數中同時指定設定檔的路徑,執行時命令列參數的優先權最高。

    二、SpringBoot 設定檔生效的優先排序:

    1. #java -jar 命令列中,透過--spring. config.location 參數指定的方式優先權最高。

    2. 設定 SPRING_CONFIG_LOCATION 環境變數來指定設定檔的路徑是次優先權。

    3. 在執行 java -jar 指令同級目錄下的 config 資料夾是第三優先權。

    4. 注意:如果java -jar 指令不是在專案jar 套件同級目錄執行的話,在專案jar 套件同級目錄下的config 資料夾是不生效的。

    5. 專案jar 套件中propertiesyml 檔案中指定spring.config.location 設定資料夾是第四優先級。

    6. 專案 jar 套件同級下直接放 properties 檔案是第五優先級,直接把設定檔放到 jar 套件的同級目錄。

    7. 專案內部的classpath 同級config 資料夾是第六優先權,在classpath 建置一個config 資料夾,然後把設定檔放進去。

    8. 專案內部的classpath 同級放properties 檔案是最低優先權,是在classpath 下直接放設定檔。

    SpringBoot 預設是優先讀取java -jar 命令同級目錄下的一個 config/application.properties 檔案的。

    在專案內 src/main/resources 資料夾下建立的 application.properties 檔案的優先權是最低的。

    以上是SpringBoot怎麼將設定檔掛到jar包外面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:yisu.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板