首页 > 解决方案 > 在处理程序返回 null 的情况下如何避免流停止?

问题描述

我有以下配置:

flow -> flow.handle(myHandler)
                .filter(p -> {
                    log.warn("FILTER IS INVOKED");
                    return p != null;
                }

如果 ifmyHandler#handle返回 null - 不调用过滤器。

我怎样才能实现将空值传递给过滤器?

标签: javaspring-integrationspring-integration-dsl

解决方案


我想出了解决方法:在处理程序返回类型上创建包装器:

class Wrapper {
   Foo foo;
   ...
}

在这种情况下,我可以执行以下操作:

flow -> flow.handle(myHandler)
                .filter(p -> {
                    log.warn("FILTER IS INVOKED");
                    return p.getFoo() != null;
                }

推荐阅读