Gre*_*les 1 spring-cloud-stream spring-cloud-dataflow
这似乎是一个愚蠢的问题,但我们正在尝试从SCDF shell应用程序定义数据流,但我们遇到引用问题.假设我们想要定义一个带有SpEL表达式的过滤器,只过滤掉JSON输入中没有John Doe名称的任何内容.SpEL将是:
payload.name != 'John Doe'
Run Code Online (Sandbox Code Playgroud)
要么
payload.name ne 'John Doe'
Run Code Online (Sandbox Code Playgroud)
流定义将是:
stream create --name testflow --definition "http | filter --expression=<expression> | log"
Run Code Online (Sandbox Code Playgroud)
我不能用单引号括起<expression>,因为表达式本身包含单引号,我不能使用双引号,因为整个流定义使用那些.我不能只留下引号,因为shell的解析器会被空格和!混淆.从shell应用程序中定义这个流是不可能的?可以从浏览器应用程序执行,但其他数据流defs在那里有解析问题.
使用字符串文字定义过滤器表达式有点棘手.我们应该将字符串文字(带空格)括在两个单引号内,而不是双引号.
stream create --name test --definition "http | filter --expression='!(payload.firstName==''Joe Robert'' and (payload.lastname==''Smith'' or payload.prod==''Williams''))' |log"
Run Code Online (Sandbox Code Playgroud)
只有定义用上面的双引号括起来.参考:https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#spring-cloud-dataflow-stream-intro-dsl
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |