Spring引导未读取特定于环境的YAML文件
我已经开发了一个spring引导rest应用程序,我正在尝试根据值“spring.profiles.active”读取特定于环境的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
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
现在,当您使用本地configurespring.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文件???