如何创建Spring-XD处理器模块来过滤消息到输出通道

时间:2014-04-01 08:49:08

标签: java spring spring-xd

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

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

过滤器的示例都是指表达式。

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

1 个答案:

答案 0 :(得分: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"