簡體   English   中英

Spring boot - 使用配置文件時未讀取默認屬性文件

[英]Spring boot - Default properties file not being read when using profile

我有一個帶有 2 個屬性文件的 Spring Boot 2 應用程序:

  • 應用程序屬性
  • 應用程序-dev.properties

當我使用 dev 配置文件在 IntellijIdea 中運行應用程序時,Spring 會讀取配置文件特定文件和默認文件。

一旦我構建了一個可執行的 jar 文件,我就在 jar 之外創建了一個新的 application-prod.properties,具有生產環境屬性,並使用--spring.profiles.active=prod執行應用程序,期望它讀取這個文件和默認application.properties ,但它只是讀取 jar (application-prod.properties) 外的文件。

Spring Boot 應該讀取這兩個文件,還是我期待它默認不做的事情?

如果應該,我會缺少什么?

正如邁克爾所說,Spring boot 支持屬性層次結構

我試過了,它按預期工作,你可以在這里找到一個參考項目

我能想到的幾點:

  • 提取 jar 文件的內容並確認名為 application.properties 的文件捆綁在其中。

  • 您可能會覆蓋 spring.config.location 屬性並使用文件名而不是目錄

來自Spring Boot 文檔

如果您在 spring.config.location 中指定了任何文件,則不會考慮這些文件的特定於配置文件的變體。 如果您還想使用特定於配置文件的屬性,請使用 spring.config.location 中的目錄。

  • 如果您覆蓋默認的 spring.config.location,則應用程序可能無法找到默認的 application.properties 文件。

默認情況下,application.properties 將用於運行 Spring Boot 應用程序。 在運行 JAR 文件時,您需要指定 spring 活動配置文件。 只會讀取一個文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM