2

有很多关于如何在 java 中编写转换器等的示例,但没有关于过滤器(脚本类型过滤器除外,但我想使用 java 方法)。

我想创建一个自定义 java 过滤器来过滤从源到接收器的消息的有效负载。

过滤器的例子都是指一个表达式。

(如何)我可以告诉上下文执行指定类中的java方法作为表达式吗?

4

1 回答 1

6

好吧,您需要实现自定义处理器模块。只需遵循Spring XD Guilde的 Custom Transformer 示例即可

过滤器的自定义Selector

public class MySelector implements MessageSelector {

     boolean accept(Message<?> message) {
      ...
    }
}

模块 ctx myfilter.xml

<channel id="input"/>

<filter input-channel="input" output-channel="output">
    <beans:bean class="custom.MySelector" />
</filter>

<channel id="output"/>

将您的类打包到 jar 中,并将所有内容放入${xd.home}/modules/processors/myfilter具有结构的目录中:

/myfilter
   /config
      myfilter.xml
   /lib
      myfilter.jar

像这样测试它:

xd:> stream create --name filtertest --definition "http | myfilter | log"
于 2014-04-01T09:58:58.633 回答