1. 程式人生 > >【SpringBoot】 啟動時,修改預設配置檔名稱

【SpringBoot】 啟動時,修改預設配置檔名稱

前言

  • spring boot version : 2.0.0.RELEASE
  • maven version : 3.5.0

在不同的環境下,依賴的外部資源是不一樣的。比如,在windows上開發,在linux下進行測試時,無法將開發環境和測試i環境構造成一致的。
此時,就需要兩個配置檔案來解決此事。開發環境一個配置檔案,測試環境一個配置檔案。

方式1

使用 --spring.profiles.active=xxx。

  • 步驟1:
    先為開發環境和測試環境分別編寫配置檔案,配置檔案中保留不同之處。開發環境配置檔案為:application-dev.properties;測試環境配置檔案為:application-test.properties。
    再將開發環境和測試環境中,相同的配置放到同一個配置檔案(application.properties)中。
  • 步驟2:
    啟動時,使用 --spring.profiles.active=xxx,指定不同的profile。
    開發環境啟動時,在命令列引數中提供spring.profiles.active=dev。例:mvn spring-boot:run -Dspring.profiles.active=dev
    測試環境啟動時,在命令列引數中提供spring.profiles.active=test。例:mvn spring-boot:run -Dspring.profiles.active=test

說明
java 命令啟動時,–spring.profiles.active=dev,前面的“–”很重要。
mvn 命令啟動時,-Dspring.profiles.active=dev,前面的“-D”很重要。
spring.profiles.active=dev 時,配置檔案匹配順序:application-dev.properties、application.properties。如果application-dev.properties中有的配置,則會以application-dev.properties的配置為準。如果application-dev.properties中沒有的配置,則會以application.properties的配置為準。(配置檔案載入順序詳見官方文件:24. Externalized Configuration)

方式2

使用 --spring.config.name=xxx。

  • 步驟1:
    先為開發環境和測試環境分別編寫配置檔案,配置檔案中保留不同之處。開發環境配置檔案為:application-dev.properties;測試環境配置檔案為:application-test.properties。
  • 步驟2:
    啟動時,使用 --spring.config.name=xxx,指定配置檔名。
    開發環境啟動時,在命令列引數中提供spring.config.name=application-dev。例:mvn spring-boot:run -Dspring.config.name=application-dev
    測試環境啟動時,在命令列引數中提供spring.config.name=application-test。例:mvn spring-boot:run -Dspring.config.name=application-test

說明
java 命令啟動時,–spring.profiles.active=application-dev,前面的“–”很重要。
mvn 命令啟動時,-Dspring.profiles.active=application-dev,前面的“-D”很重要。
–spring.config.name=application-dev 時,配置檔案匹配順序:application-dev.properties。如果application-dev.properties中有的配置,則會以application-dev.properties的配置為準。如果application-dev.properties中沒有的配置,則為null。(配置檔案載入順序詳見官方文件:24. Externalized Configuration)

方式3

使用 --spring.config.location=xxx。

同 --spring.config.name=xxx類似。但是,–spring.config.location=xxx可以連配置檔案路徑一起修改,也可以指定多個配置檔案。(配置檔案載入順序詳見官方文件:24. Externalized Configuration)
例:mvn spring-boot:run -Dspring.config.location=classpath:/config/application-test2.properties,classpath:application-test1.properties

說明
指定多個配置檔案時,後給出的配置檔案覆蓋先給出的配置檔案。
如果application-test1.properties中有的配置,則會以application-test1.properties的配置為準。如果application-test1.properties中沒有的配置,但application-test2.properties中有的配置,則會以application-test2.properties的配置為準。如果application-test1.properties和application-test2.properties中都沒有的配置,則為null。