在 Spring Cloud Dataflow 中引用属性
Posted
技术标签:
【中文标题】在 Spring Cloud Dataflow 中引用属性【英文标题】:Quoting properties in Spring Cloud Dataflow 【发布时间】:2018-07-10 00:20:50 【问题描述】:这似乎是一个愚蠢的问题,但我们正在尝试从 SCDF shell 应用程序定义数据流,但我们遇到了引用问题。假设我们想要使用 SpEL 表达式定义一个过滤器,以过滤掉 JSON 输入中没有名称 John Doe 的任何内容。 SpEL 将是:
payload.name != 'John Doe'
或
payload.name ne 'John Doe'
流定义为:
stream create --name testflow --definition "http | filter --expression=<expression> | log"
我不能用单引号将
【问题讨论】:
【参考方案1】:用字符串字面量定义过滤器表达式有点棘手。我们应该用两个单引号而不是双引号将字符串文字(带空格)括起来。
stream create --name test --definition "http | filter --expression='!(payload.firstName==''Joe Robert'' and (payload.lastname==''Smith'' or payload.prod==''Williams''))' |log"
上面只有定义用双引号括起来。 参考:https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#spring-cloud-dataflow-stream-intro-dsl
【讨论】:
哦,我现在明白了。史密斯和威廉姆斯周围的双引号实际上是双引号。现在可以了!谢谢! 谢谢,舒巴。我们在Shell Tips & Tricks 上进行了截屏,其中涵盖了推理和其他替代方案。我也觉得分享一下可能有用。以上是关于在 Spring Cloud Dataflow 中引用属性的主要内容,如果未能解决你的问题,请参考以下文章
需要有关如何在多个专用服务器中创建部署 spring-cloud-dataflow 应用程序以创建流的建议
将 spring-cloud-starter-dataflow-server-local 升级到 1.3.0 时生成错误
如何使用 Stream 为 Spring Cloud Dataflow 中的子任务设置全局属性 - Task-Launcher-Dataflow