我有一个带有2个属性文件的spring boot 2应用程序:
当我使用dev配置文件在IntellijIdea中运行应用程序时,Spring会同时读取特定于配置文件的文件和默认文件。
一旦我构建了一个可执行的jar文件,我就在jar外部创建了一个新的application-prod.properties,其中包含生产环境属性,并使用--spring.profiles.active=prod
执行该应用程序,希望它读取此文件和默认的{{ 1}},但是它只读取jar之外的文件(application-prod.properties)。
Spring Boot应该同时读取两个文件,还是我期望它默认不会执行某些操作?
如果应该,我会丢失什么?
答案 0 :(得分:1)
如Michael所述,Spring Boot支持property hierarchies。
我尝试了此方法,它可以按预期工作,您可以在here中找到参考项目
我可以考虑的几件事:
解压缩jar文件的内容,并确认名为application.properties的文件已捆绑在其中。
您可能会覆盖spring.config.location属性,并使用文件名而不是目录
如果您在spring.config.location中指定了任何文件,则不考虑这些文件的特定于配置文件的变体。如果您还想使用特定于配置文件的属性,请使用spring.config.location中的目录。
答案 1 :(得分:0)
默认情况下,application.properties将用于运行Spring Boot应用程序。运行JAR文件时,您需要指定spring活动概要文件。仅读取一个文件。