流程管理器企业集成模式

企业集成模式包含流程管理器模式。现在,您可以通过使用封装在路由单中的RoutingSlipRouteStrategy中的自定义流程管理器逻辑轻松实现此模式。除了bean名称之外,RoutingSlipRouteStrategy还可以返回任何MessageChannel对象,并且不需要此MessageChannel实例是应用程序上下文中的bean。这样,当无法预测应使用哪个通道时,我们可以提供强大的动态路由逻辑。可以在RoutingSlipRouteStrategy中创建MessageChannel并返回。具有关联的MessageHandler实现的FixedSubscriberChannel对于此类情况是良好的组合。例如,您可以像以下示例所示那样路由到响应式流

@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)));
}