我有一个带有 2 个属性文件的 Spring Boot 2 应用程序:
- 应用程序属性
- application-dev.properties
当我使用 dev 配置文件在 IntellijIdea 中运行应用程序时,Spring 会读取配置文件特定文件和默认文件。
构建可执行 jar 文件后,我在 jar 外部创建了一个新的 application-prod.properties,其中包含生产环境属性,并使用 --spring.profiles.active=prod
执行应用程序期望它读取此文件和默认的 application.properties
,但它只读取 jar 外部的文件 (application-prod.properties)。
Spring Boot 应该读取这两个文件还是我期待它默认情况下不会执行的操作?
如果应该的话,我会错过什么?
最佳答案
正如 Michael 提到的,Spring boot 支持 property hierarchies .
我尝试了这个,它按预期工作,您可以在 here 中找到引用项目
我可以考虑的一些事情:
提取 jar 文件的内容并确认名为 application.properties 的文件捆绑在其中。
您可能会覆盖 spring.config.location 属性并使用文件名而不是目录
If you have specified any files in spring.config.location, profile-specific variants of those files are not considered. Use directories in spring.config.location if you want to also use profile-specific properties.
- 如果您覆盖默认的 spring.config.location,那么应用程序可能无法找到默认的 application.properties 文件。
关于java - Spring boot - 使用配置文件时不读取默认属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57083364/