wwa*_*dge 2 spring-integration
鉴于:
return from(listenerContainer(connectionFactory, queue))
.handle(Foo.class, new HandlerForFoo()).get();
}
Run Code Online (Sandbox Code Playgroud)
如果通道接收到Bar.class类型的有效负载,我怎么能让它调用HandlerForBar?我的意思是这样的:
return from(listenerContainer(connectionFactory, queue))
.handle(Bar.class, new HandlerForBar());
.handle(Foo.class, new HandlerForFoo()).get();
}
Run Code Online (Sandbox Code Playgroud)
它不起作用.流定义假设第二个.handle()跟在第一个之后.
为了您的payload type目的,有一个特殊的企业集成模式 - 消息路由器.
Spring Integration提供了关于此事的特定实现 - PayloadTypeRouter.
使用Spring Integration Java DSL,我们可以通过以下方式满足您的要求:
.<Object, Class<?>>route(Object::getClass, m -> m
.subFlowMapping(Bar.class.getName(), sf -> sf.handle(new HandlerForBar())
.subFlowMapping(Foo.class.getName(), sf -> sf.handle(new HandlerForFoo())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1779 次 |
| 最近记录: |