Spring Boot設定檔放在jar外部

來源:互聯網
上載者:User

標籤:blog   命令列   必須   www   ocs   span   jad   ddc   params   

Spring Boot程式預設從application.properties或者application.yaml讀取配置,如何將配置資訊外置,方便配置呢?

查詢官網,可以得到下面的幾種方案:

通過命令列指定

SpringApplication會預設將命令列選項參數轉換為配置資訊
例如,啟動時命令參數指定:

java -jar myproject.jar --server.port = 9000

從命令列指定配置項的優先順序最高,不過你可以通過setAddCommandLineProperties來禁用

SpringApplication.setAddCommandLineProperties(false).
外置設定檔

Spring程式會按優先順序從下面這些路徑來載入application.properties設定檔

  • 目前的目錄下的/config目錄
  • 目前的目錄
  • classpath裡的/config目錄
  • classpath 跟目錄

因此,要外置設定檔就很簡單了,在jar所在目錄建立config檔案夾,然後放入設定檔,或者直接放在設定檔在jar目錄

自訂設定檔

如果你不想使用application.properties作為設定檔,怎麼辦?完全沒問題

java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

或者

java -jar -Dspring.config.location=D:\config\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar 

當然,還能在代碼裡指定

@SpringBootApplication@PropertySource(value={"file:config.properties"})public class SpringbootrestdemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootrestdemoApplication.class, args); }}
按Profile不同環境讀取不同配置

不同環境的配置設定一個設定檔,例如:

  • dev環境下的配置配置在application-dev.properties中;
  • prod環境下的配置配置在application-prod.properties中。

在application.properties中指定使用哪一個檔案

spring.profiles.active = dev

當然,你也可以在啟動並執行時候手動指定:

java -jar myproject.jar --spring.profiles.active = prod

參考:
1 參見Externalized Configuration

Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支援是對博主最大的鼓勵,感謝您的認真閱讀。
本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。

Spring Boot設定檔放在jar外部

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.