流程管理器企业集成模式

企业集成模式包括 流程管理器 模式。 现在,您可以使用封装在路由 slip 中的 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)));
}