|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
过程管理企业集成模式
企业集成模式包括 流程管理器 模式。
现在,您可以通过在路由清单中封装在 RoutingSlipRouteStrategy 内的自定义流程管理器逻辑,轻松实现此模式。
除了 Bean 名称外,RoutingSlipRouteStrategy 还可以返回任何 MessageChannel 对象,并且不要求该 MessageChannel 实例必须是应用上下文中的 Bean。
通过这种方式,当无法预测应使用哪个通道时,我们可以提供强大的动态路由逻辑。
可以在 RoutingSlipRouteStrategy 内创建 MessageChannel 并返回它。
具有关联的 MessageHandler 实现的 FixedSubscriberChannel 是此类情况的理想组合。
例如,您可以将消息路由到 响应式流(Reactive Streams),如下示例所示:
@Bean
public PollableChannel resultsChannel() {
return new QueueChannel();
}
@Bean
public RoutingSlipRouteStrategy routeStrategy() {
return (requestMessage, reply) -> requestMessage.getPayload() instanceof String
? new FixedSubscriberChannel(m ->
Mono.just((String) m.getPayload())
.map(String::toUpperCase)
.subscribe(v -> messagingTemplate().convertAndSend(resultsChannel(), v)))
: new FixedSubscriberChannel(m ->
Mono.just((Integer) m.getPayload())
.map(v -> v * 2)
.subscribe(v -> messagingTemplate().convertAndSend(resultsChannel(), v)));
}