Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring引导未读取特定于环境的YAML文件_Spring_Spring Boot - Fatal编程技术网

Spring引导未读取特定于环境的YAML文件

Spring引导未读取特定于环境的YAML文件,spring,spring-boot,Spring,Spring Boot,我已经开发了一个spring引导rest应用程序,我正在尝试根据值“spring.profiles.active”读取特定于环境的YAML文件 我有两个文件 1. application.yml 2. application-qa.yml 我在两个文件中都有下面的属性 application.yml文件具有以下属性 comp: bu: env: local comp: bu: env: QA application-qa.yml文件具有以下属性 comp: bu: e

我已经开发了一个spring引导rest应用程序,我正在尝试根据值“spring.profiles.active”读取特定于环境的YAML文件

我有两个文件

 1. application.yml
 2. application-qa.yml
我在两个文件中都有下面的属性

application.yml文件具有以下属性

comp:
 bu:
  env: local
comp:
 bu:
  env: QA
application-qa.yml文件具有以下属性

comp:
 bu:
  env: local
comp:
 bu:
  env: QA
我正在设置
spring.profiles.active=qa
,如上所述,我希望只有
application qa.yml
被加载,但在这种情况下,
application.yml和application qa.yml
都被加载,当我的代码查找属性comp.bu.env时,它总是得到值

本地的

只有

我希望我的代码从
应用程序qa.yml
文件中读取comp.bu.env属性


可以帮我找出我这里缺少什么吗?

application.properties
中删除
comp.bu.env
配置。创建单独的配置文件
application-dev.yaml
,并将此配置放在那里:

comp:
 bu:
  env: local
现在,当您使用本地configure
spring.profiles.active=qa


这将有效地创建开发配置概要文件

似乎没有正确设置spring.profiles.active值,因此您的应用程序正在加载默认的application.yml。 尝试使用设置值
-Dspring.profiles.active=qa
在执行
bootRun
命令之前


e、 g.如果您使用的是gradle,您将执行
/gradlew-Dspring.profiles.active=qa bootrun

谢谢您的观点,我已经解决了它。
我在application-qa.yml中有AWS配置文件,这导致跳过我的qa属性,因为我提供的配置文件名是qa。我已将属性移到application-qa.yml文件中AWS:profile的上方,然后这些属性开始恢复

,您可以添加
spring boot starer actuator
,并访问
/env
以查看您的属性发生了什么。tan9,您可以详细说明一下吗?将
spring boot starter actuator
添加到pom.xml或build.gradle,运行您的应用程序,然后访问Spring Boot公开的环境信息。谢谢您的观点。我已经解决了问题并发布了答案。谢谢你的建议,我没有application.properties,我有application.yml,所以我删除了它,创建了application-dev.yml并配置了spring.profiles.active=qa,我正在尝试启动该应用程序,但我的应用程序仍在寻找application.yml文件,由于该文件不存在,所以失败了。spring引导始终需要application.yml文件???