javascript
【SpringBoot】 启动时,修改默认配置文件名称
前言
- spring boot version : 2.0.0.RELEASE
- maven version : 3.5.0
在不同的環境下,依賴的外部資源是不一樣的。比如,在windows上開發,在linux下進行測試時,無法將開發環境和測試i環境構造成一致的。
此時,就需要兩個配置文件來解決此事。開發環境一個配置文件,測試環境一個配置文件。
方式1
使用 --spring.profiles.active=xxx。參考 Spring Boot Reference Guide : 24.4 Profile-specific Properties
- 步驟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的配置為準。
方式2
使用 --spring.config.name=xxx。參考 Spring Boot Reference Guide :24.3 Application Property Files
- 步驟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。
方式3
使用 --spring.config.location=xxx。參考 Spring Boot Reference Guide :24.3 Application Property Files
同 --spring.config.name=xxx類似。但是,–spring.config.location=xxx可以連配置文件路徑一起修改,也可以指定多個配置文件。
例: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。
上述方法失效情況說明
- 當 spring-boot-devtools 起效時,上述方法失效。
- 當 pom文件中包含spring-boot-devtools 時,且以 mvn spring:boot 方式啟動時,spring-boot-devtools 起效,上述方法失效。(可以使用個pom來解決,默認的pom中,包含spring-boot-devtools ;另外一個pom中,如pom-test.xml,不包含spring-boot-devtools。用mvn -f pom-test.xml spring:boot啟動即可。)
- 當pom文件中包含spring-boot-devtools 時,且以 java -jar 方式啟動時,spring-boot-devtools 自動失效,上述方法有效。
- 使用eclipse時,有無spring-boot-devtools,上述方式都有失效。
總結
以上是生活随笔為你收集整理的【SpringBoot】 启动时,修改默认配置文件名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度 CTO 王海峰:文心一言用户规模已
- 下一篇: “git pull” 强制覆盖本地文件