有很多关于如何在 java 中编写转换器等的示例,但没有关于过滤器(脚本类型过滤器除外,但我想使用 java 方法)。
我想创建一个自定义 java 过滤器来过滤从源到接收器的消息的有效负载。
过滤器的例子都是指一个表达式。
(如何)我可以告诉上下文执行指定类中的java方法作为表达式吗?
好吧,您需要实现自定义处理器模块。只需遵循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"