【问题标题】:How to Compare Value in application.yml [duplicate]如何比较 application.yml 中的值 [重复]
【发布时间】:2021-10-19 11:09:22
【问题描述】:

只有当环境为其他环境的开发环境时,我才想启用 flyway,它应该被禁用。它可以在为每个环境创建配置文件时定义,但只有一个配置文件。

我尝试了以下脚本的几个版本,但我遇到了字符串转换问题。

flyway:
    enabled: ${env} == 'dev'

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/questions/34845990/…
  • 创建一个特定于环境的配置,将其设置为true,并将默认设置为false
  • @M.Deinum 这也是一个选项,但我们需要更改整个堆栈,因为它是 aws env。并需要运维团队。我只是想知道没有它的表现
  • 为什么需要运维团队?只需在您的应用程序中包含一个文件即可。
  • @M.Deinum 权限不足:) 企业世界

标签: java spring yaml flyway spring-el


【解决方案1】:

基于post 中的答案,application.yaml 中的以下 SpEL 可以解决问题。

Spring 会在解析属性时自动将truefalse 的字符串表示形式转换为Boolean

flyway.enabled: '#{ "${env:false}".equals("dev") ? "true" : "false" }'

【讨论】:

  • 无法将 'spring.flyway.enabled' 下的属性绑定到布尔值:``` 属性:spring.flyway.enabled 值:'#{ "${env:false}".equals("开发“)? "true" : "false" }' 来源:类路径资源 [application.yml]:57:14 原因:无法将 java.lang.String 转换为布尔值```
  • 我在github 中创建了一个工作示例。让我知道与您的项目有什么不同。
  • 不同的是你没有使用flyway库,并且没有依赖需要这个属性作为布尔值
猜你喜欢
  • 1970-01-01
  • 2016-07-09
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多