如果没有application.yml,Spring Boot应用程序将无法启动

时间:2019-07-16 22:23:30

标签: spring-boot

我有一个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的任何想法?

谢谢

1 个答案:

答案 0 :(得分:0)

希望按照规则进行配置的Spring Boot:

  1. application-{ profile }。yml-> application.yml
  2. 外部应用 打包的jar-> 内部应用打包的jar

因此,在开始应用游戏时,您需要特定的配置文件:

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)

按以下顺序考虑属性:

  
      
  1. 特定于配置文件的应用程序属性打包的jar之外(application- {profile} .properties和YAML变体)
  2.   
  3. 打包在 jar内的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)。
  4.   
  5. 应用程序属性打包的jar之外(application.properties和YAML变体)。
  6.   
  7. 打包在 jar内的应用程序属性(application.properties和YAML变体)。
  8.   

您可以在此处了解更多信息: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html