Java命令行啓動jar包更改默認端口以及配置文件的幾種方式

Java命令行啓動jar包更改默認端口以及配置文件的幾種方式

  1. java -jar xxx.jar --server.port=8081

默認如果jar包沒有啓動文件,可以採用這種方式進行啓動

  1. java -jar xxx.jar --spring.profiles.active=dev
  1. 這種方式,你打的jar包裏得有application-dev.properties或application-dev.yml這類資源文件
  2. 使用 "--spring.profiles.active" 參數,搭配@Profile註解,可以實現不同環境下(開發、測試、生產)配置參數的切換

  3. 根據文檔描述,我們除application.properties外,還可以根據命名約定(命名格式:application-{profile}.properties)來配置,如果active賦予的參數沒有與使用該命名約定格式文件相匹配的話,app則會默認從名爲application-default.properties 的配置文件加載配置。
如:`spring.profiles.active=hello-world,sender,dev` 有三個參數,其中 dev 正好匹配下面配置中的application-dev.properties 配置文件,所以app啓動時,項目會先從application-dev.properties加載配置,再從application.properties配置文件加載配置,如果有重複的配置,則會以application.properties的配置爲準。
(配置文件加載順序詳見官方文檔:24. Externalized Configuration)


如此,我們就不用爲了不同的運行環境而去更改大量的環境配置了(此處,dev、pro、test分別爲:開發、生產、測試環境配置)

  1. java -jar xxx.jar --spring.config.location=/data/java/application.properties 或 java -jar xxx.jar --spring.config.location=/data/java/application.yml

指定加載某個資源文件,也可以使用相對路徑

  1. java -jar xxx.jar --spring.config.location=/data/java/application.properties -Dserver.port=8081 -Dserver.address=127.0.0.1

擴展,你加載的指定配置文件裏的有server.port和server.address配置項
例如:
我工程裏有mapper/xxx.xml數據庫CRUD接口映射文件,我編譯後的目錄文件其實是在target/classes/mapper/xxx.xml
當我使用指定資源配置文件啓動的時候,由於我指定的配置文件裏配置的 mapper-locations: classpath:mapper/*. xml是這樣的加載路徑,調試運行時沒問題,但是在編譯後的目標目錄裏啓動時,就會因爲路徑不對而導致啓動失敗。
如果我這樣啓
java -jar xxx.jar --spring.config.location=./classes/application.yml
下面一定會報mybatis-plus相關的一些錯誤,例如找不到映射文件之類的
那,如果我這樣啓
java -jar xxx.jar --spring.config.location=./classes/application.yml -Dmybatis-plus mapper-locations=./classes/mapper
就能正常加載資源配置文件並啓動成功,其他配置項的加載道理也一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章