9.2.2 过滤器
过滤器可以放置在集成管道的中间,以允许或不允许消息进入流中的下一个步骤。
例如,假设包含整数值的消息通过名为 numberChannel 的通道发布,但是只希望偶数传递到名为 evenNumberChannel 的通道。在这种情况下,可以使用 @Filter 注解声明一个过滤器,如下所示:
@Bean
public IntegrationFlow evenNumberFlow(AtomicInteger integerSource) {
return IntegrationFlows
...
.<Integer>filter((p) -> p % 2 == 0)
...
.get();
}
在本例中,使用 lambda 表达式实现过滤器。但是,事实上,filter() 方法是接收一个 GenericSelector 作为参数。这意味着可以实现 GenericSelector 接口,而不是引入一个简略的 lambda 表达式实现过滤。
复制链接