遗留 Spring Integration 项目使用 XML 定义工作流。基本流程如下:
int-jms:message-driven-channel-adapter
侦听消息并将其放置在内部通道上。- 转换器处理通道上的消息,然后将输出路由到其他三个内部通道。
- 这些通道中的每一个都与一个端点相关联,该端点将进一步处理输出。
以下是将转换器组件与内部输入和输出通道联系起来的 XML:
<int:chain input-channel="inputChannel">
<int:transformer ref="..." />
<int:recipient-list-router apply-sequence="true">
<int:recipient channel="outputChannel1" />
<int:recipient channel="outputChannel2" />
<int:recipient channel="outputChannel3" />
</int:recipient-list-router>
</int:chain>
我现在试图将其表示为 DSL。以下是端点的基本配置:
@Bean
public DirectChannel outputChannel() {
return new DirectChannel();
}
@Bean
public org.springframework.integration.dsl.IntegrationFlow listenerFlow() {
return IntegrationFlows
.from(inputChannel)
.transform(transformer)
.channel(outputChannel())
.get();
}
@Bean
public org.springframework.integration.dsl.IntegrationFlow outputFlow() {
return IntegrationFlows
.from(outputChannel())
.handle(handler)
.get();
}
每个端点都被表示为一个单独的IntegrationFlow
bean。这是最佳实践,还是最好让一个IntegrationFlow
代表完整的工作流程(如果可能的话)?
谢谢