有许多关于如何在java中编写变换器等的例子,但没有关于过滤器的内容(脚本类型过滤器除外,但我想使用java方法)。
我想创建一个自定义java过滤器来过滤从源到接收器的消息的有效负载。
过滤器的示例都是指表达式。
(如何)我可以告诉上下文在指定的类中执行java方法作为表达式?
答案 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"