我有一个Spring配置服务器,其中包含一些diff微服务的配置文件。 我有一个需要“ application.yml”启动的微服务。它具有另一个配置文件:“ application-pqr.yml”,用于其他属性。 “ pqr”是春天的轮廓。 “ application.yml”具有设置上下文路径的属性。像这样:
contextPath: /abc-service
我试图将'application.yml'的内容添加到'application-pqr.yml'中,删除'application.yml'并启动微服务。但是该服务无法启动。 由于它不是我们的服务,因此我无法对其进行任何更改。 我有空的“ application.yml”,并在“ application-pqr.yml”中合并了内容,但该应用程序仍无法启动。 应用程序引发错误:
java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing
我无法在“ application.yml”中包含contextPath,因为其余的微服务也采用了该路径。 (因为它在application.yml中)
关于此应用程序为何专门查找application.yml的任何想法?
谢谢
答案 0 :(得分:0)
希望按照规则进行配置的Spring Boot:
因此,在开始应用游戏时,您需要特定的配置文件:
mvn spring-boot:run -Drun.profiles=pqr
或者:
java -jar -Dspring.profiles.active=pqr app.jar
或者:
java -jar app.jar --spring.profiles.active=pqr
pqr 是您的个人资料(application-pqr.yml)
按以下顺序考虑属性:
- 特定于配置文件的应用程序属性打包的jar之外(application- {profile} .properties和YAML变体)。
- 打包在
jar内的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)。 - 应用程序属性打包的jar之外(application.properties和YAML变体)。
- 打包在
jar内的应用程序属性(application.properties和YAML变体)。
您可以在此处了解更多信息: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html