此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
Process Manager 企业集成模式
企业集成模式包括 Process Manager 模式。
现在,您可以通过使用封装在RoutingSlipRouteStrategy
在工艺路线单中。
除了 bean 名称之外,RoutingSlipRouteStrategy
可以返回任何MessageChannel
object,并且不需要 thisMessageChannel
instance 是应用程序上下文中的 bean。
这样,当无法预测应该使用哪个 channel 时,我们可以提供强大的 dynamic routing logic。
一个MessageChannel
可以在RoutingSlipRouteStrategy
然后返回。
一个FixedSubscriberChannel
替换为关联的MessageHandler
对于此类情况,implementation 是一个很好的组合。
例如,你可以路由到 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)));
}