【发布时间】:2017-06-17 11:19:22
【问题描述】:
我正在开发一个 Spring Boot 应用程序和启动器。我希望启动器包含通用属性和代码。
在我的启动器中,我有一个 application-dev.properties 文件。我在启动器中定义了一个@Profile("dev")。
当我使用开发配置文件启动我的应用程序时,我会看到启动器的属性,这很棒。不好的是,当我将 application-dev.properties 文件添加到我的应用程序时,根本不再读取来自 starter 的文件。这意味着我无法弄清楚如何将常见的“开发”配置文件属性放在那里。
根据external configuration 文档,我认为这会起作用,因为会先读取启动文件,然后再读取应用程序文件。
Spring Boot 使用一个非常特殊的 PropertySource 顺序,旨在允许明智地覆盖值。属性按以下顺序考虑:
剪辑
打包 jar 之外的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)
打包在您的 jar 中的特定于配置文件的应用程序属性(application-{profile}.properties 和 YAML 变体)
有什么建议吗?
【问题讨论】:
-
一个建议。将 application-dev.properties 放入 starter 的 src/main/resources/config 文件夹并将应用程序的 application-dev.properties 放入 src/main/resources 怎么样?
-
成功了!如果您回复而不是添加评论,我会将此标记为已回答。谢谢!
-
您所讨论的这些属性是放在启动模块还是自动配置模块上?
标签: spring spring-boot