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

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

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

默認若是jar包沒有啓動文件,能夠採用這種方式進行啓動java

  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分別爲:開發、生產、測試環境配置)spring

  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
就能正常加載資源配置文件並啓動成功,其餘配置項的加載道理也同樣。mybatis

相關文章
相關標籤/搜索