Spring Boot 不读取环境特定的 YAML 文件

标签 spring spring-boot

我开发了一个 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=qabootRun 命令之前。

例如如果您使用的是 gradle,您可以执行 ./gradlew -Dspring.profiles.active=qa bootrun

关于Spring Boot 不读取环境特定的 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034087/

相关文章:

java - 用于映射文件的多个位置的 Hibernate SessionFactoryBean

java - 如何在 Spring Security 中更改登录 URL

java - 如何动态设置 Spring Data Cassandra 键空间?

java - 如何以jsp页面的spring形式获取当前日期

java - 用于将 UTC 转换为 EST 的 JUnit 测试用例

java - 在 Spring MVC 应用程序中将 DAO 对象转换为 DTO 对象

Spring JPA 存储库 Autowiring 问题

java - 无法从具有时间戳字段的 datastax 中检索数据

java - 即使通过 Spring Boot 在架构中指定,H2 数据库也无法在列中设置默认值

java - 如何将属性注入(inject)到 WebSocketHandler 中?