springboot:在application.yaml中动态设置属性

bgibtngc  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(603)

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

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

我想把“applicationid”设置成数字形式。为此,我尝试使用spel。但结果表明,spel不适用于application.yaml。
我读到了yaml的两种日常设置方式:
使用pom.xml
使用环境变量
但这种方式不适用于我的情况:这是一个gradle项目。从一个容器部署的所有应用程序示例。

ffscu2ro

ffscu2ro1#

spring.cloud.stream:
    kafka.streams.binder.functions.filter:
       applicationId: ${zk_prop:zk}

哪里 zk_prop 是env变量 zk 默认值。
要在使用gradle plugin运行应用程序时传递参数,需要在build.gradle文件中配置bootrun任务,如下所示:

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

现在,您可以按如下方式传递命令行参数: ./gradlew bootRun -Pargs=--zk_prop=custom-zk,--other_props=...

相关问题