流程管理器 企業整合模式

企業整合模式包含 流程管理器 模式。現在,您可以透過在路由單中使用封裝在 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)));
}