我开发了一个 spring boot rest 应用程序,我正在尝试根据值“spring.profiles.active”读取环境特定的 YAML 文件
我有两个文件
1. application.yml
2. application-qa.yml
我在两个文件中都有以下属性
application.yml 文件具有以下属性
comp:
bu:
env: local
application-qa.yml 文件具有以下属性
comp:
bu:
env: QA
并且我正在设置 spring.profiles.active=qa
,上面给出的,我期望只有 application-qa.yml
被加载,但在这种情况下application.yml 和 application-qa.yml
正在加载,当我的代码查找属性 comp.bu.env 时,它总是获取值
local
只有
我希望我的代码从 application-qa.yml
文件中读取 comp.bu.env 属性。
可以帮我弄清楚我在这里缺少什么吗?
最佳答案
似乎没有正确设置 spring.profiles.active 值,因此您的应用正在加载默认的 application.yml。
尝试设置值
-Dspring.profiles.active=qa
在 bootRun
命令之前。
例如如果您使用的是 gradle,您可以执行 ./gradlew -Dspring.profiles.active=qa bootrun
关于Spring Boot 不读取环境特定的 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034087/