在 Spring Cloud Dataflow 中引用属性
Quoting properties in Spring Cloud Dataflow
这似乎是一个愚蠢的问题,但我们试图从 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"
我不能用单引号将 括起来,因为表达式本身包含单引号,而且我不能使用双引号,因为整个流定义都使用它们。我不能只留下引号,因为 shell 的解析器会被空格和 ! 弄糊涂。在 shell 应用程序中定义这个流是不可能的吗?可以从浏览器应用程序执行,但其他数据流定义在那里存在解析问题。
用字符串文字定义过滤器表达式有点棘手。我们应该将字符串文字(带空格)括在两个单引号而不是双引号中。
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
这似乎是一个愚蠢的问题,但我们试图从 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"
我不能用单引号将
用字符串文字定义过滤器表达式有点棘手。我们应该将字符串文字(带空格)括在两个单引号而不是双引号中。
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