1. 程式人生 > >Spring Boot 配置檔案載入順序

Spring Boot 配置檔案載入順序

有這麼一種情況,在application.properties有以下配置:

spring.profiles.active=dev

然後在logback-spring.xml中有以下配置:

 <springProfile name="test">
  <property name="log.path" value="/var/log/coxconfigserver" />
 </springProfile>
 <springProfile name="prod">
  <property name="log.path" value="/var/log/coxconfigserver" />
 </springProfile>
 <springProfile name="dev">
  <property name="log.path" value="D:\\log\\coxconfigserver\\" />
 </springProfile>
<File>${log.path}/loaderLogs/loader.log</File>

發現會在專案的根目錄下生成一個名字為log.path_IS_UNDEFINED的資料夾,裡面有日誌檔案,但內容只有啟動時列印的一點日誌資訊,或者什麼內容都沒有,然後,在D:\\log\\coxconfigserver\\下也會有日誌檔案,這裡的日誌檔案內容比較多,後續呼叫系統的時候,日誌資訊也會寫到這裡,發生這種情況的原因是,系統先載入了日誌配置檔案,然後開始啟動系統,載入application.properties,這時候spring.profiles.active還沒有值,所以${log.path}也就沒有定義,所以會先在跟目錄下生成log.path_IS_UNDEFINED資料夾,隨著系統載入了application.properties之後,${log.path}才被定義,所以,才會在相應的路徑生成日誌檔案,後續的日誌資訊也被寫到這裡。

可以把spring.profiles.active=dev寫到bootstrap.properties配置檔案中

待補充。。。。。