【问题标题】:SpringBoot: dinamically set properties in application.yamlSpring Boot:在 application.yml 中动态设置属性
【发布时间】:2021-07-17 16:25:01
【问题描述】:

application.yaml 包含(例如)设置:

 spring.cloud.stream:
    kafka.streams.binder.functions.filter:
       applicationId: zk

我希望动态设置“applicationId”。 为此,我尝试使用 SpEl。但事实证明 SpEl 不能适用于 allication.yaml。

我读到了 yaml 的 2 种动态设置方式:

  1. 使用 pom.xml
  2. 使用环境变量

但这种方式不适用于我的情况:它是一个 gradle 项目。从一个容器部署的所有应用程序实例。

【问题讨论】:

    标签: spring properties


    【解决方案1】:
    spring.cloud.stream:
        kafka.streams.binder.functions.filter:
           applicationId: ${zk_prop:zk}
    

    其中zk_prop 是环境变量,zk 是默认值。

    要在使用 Gradle 插件运行应用程序时传递参数,您需要在 build.gradle 文件中配置 bootRun 任务,例如:

    bootRun {
        if (project.hasProperty('args')) {
            args project.args.split(',')
        }
    }
    

    现在,您可以按如下方式传递命令行参数:

    ./gradlew bootRun -Pargs=--zk_prop=custom-zk,--other_props=...

    【讨论】:

    • 我会试试的。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2019-10-27
    • 2020-02-16
    • 1970-01-01
    • 2018-01-04
    • 2020-08-21
    • 2019-11-24
    相关资源
    最近更新 更多