關於springboot配置檔案路徑優先順序

2021-10-18 18:27:56 字數 2307 閱讀 7345

配置檔案位置

說明file:./config/

為於project目錄下的config目錄,實際上對應於jar檔案同一目錄的config目錄。

file:./

projet目錄。實際上對應於jar檔案的同一目錄。

classpath:/config/

jar包內的檔案目錄,對應**的resource目錄中的config

classpath:/

jar包內的檔案,對應**的resource目錄。

我們將上述4個配置檔案的server port分別配置為 8081、8082、8083、8084。

server:

port: 8081

之後我們啟動springboot專案:

2021-02-02 14:49:03.491  info 16724 --- [  restartedmain] o.s.b.d.a.optionallivereloadserver       : livereload server is running on port 35729

2021-02-02 14:49:03.514 info 16724 --- [ restartedmain] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8081 (http) with context path ''

可以看到,springboot實際上監聽的是8081埠。

說明file:./config/ 的優先順序是最高的。

之後我們將這個位置對應的配置檔案刪除再啟動:

2021-02-02 14:50:43.153  info 18276 --- [  restartedmain] o.s.b.d.a.optionallivereloadserver       : livereload server is running on port 35729

2021-02-02 14:50:43.175 info 18276 --- [ restartedmain] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8082 (http) with context path ''

可以看到此時的配置檔案,生效的是file:./ 下面的配置檔案,此時的監聽埠為8082。

我們再刪除此檔案之後啟動:

2021-02-02 14:52:40.730  info 12004 --- [  restartedmain] o.s.b.d.a.optionallivereloadserver       : livereload server is running on port 35729

2021-02-02 14:52:40.755 info 12004 --- [ restartedmain] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8083 (http) with context path ''

此時監聽的埠是8083。

說明在classpath中的優先順序,config目錄下的優先順序高於config目錄之外的配置檔案。

同樣,我們再將此檔案刪除,重啟,此時監聽埠會變為8084。

2021-02-02 14:54:19.761  info 16200 --- [  restartedmain] o.s.b.d.a.optionallivereloadserver       : livereload server is running on port 35729

2021-02-02 14:54:19.784 info 16200 --- [ restartedmain] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8084 (http) with context path ''

這樣我們得到了springboot配置檔案路徑的優先順序,file > classpath, 有config目錄》無config目錄。

配置檔案位置

優先順序順序

file:./config/

最高,1

file:./

其次,2

classpath:/config/

第三,3

classpath:/

最低,4

這樣我們再使用springboot的時候,就很清楚配置檔案應該存在於什麼位置是最合適。

Spring Boot讀取配置檔案與配置檔案優先順序

spring boot讀取配置檔案 package com.ivan.config.controller import org.springframework.beans.factory.annotation.autowired import org.springframework.core.env...

springboot關於配置熱部署

1.在 spring boot 開發環境下禁用模板快取 開發環境下關閉 thymeleaf 模板快取,thymeleaf 預設是開啟狀態 spring.thymeleaf.cache false 2.引入熱部署依賴 org.springframework.boot spring boot devto...

Spring Boot 菜鳥教程 28 多配置檔案

src scrolling 0 width 110 height 20 開發過程中可能會有如下需求 開發和部署的配置資訊可能不同,常規的方式就是在配置檔案裡面先寫好開發配置,在部署的時候再去修改這些配置,這樣可能會出現很多問題,比如使用者名稱 密碼忘記了修改或者改錯了等問題。author je哥 e...