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