Process Manager エンタープライズ統合パターン
エンタープライズ統合パターンには、プロセスマネージャー (英語) パターンが含まれます。ルーティングスリップ内の 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)));
}