Spring Integration DSL:将转换输出发送到多个端点

时间:2018-02-25 18:04:39

标签: spring-integration spring-integration-dsl

传统的Spring Integration项目使用XML定义工作流。 基本流程如下:

  1. int-jms:message-driven-channel-adapter会收听消息并将其置于内部频道上。
  2. 变换器处理通道上的消息,然后输出路由到其他三个内部通道。
  3. 这些渠道中的每一个都与一个将进一步处理输出的端点相关联。
  4. 以下是将变压器组件连接到内部输入和输出通道的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代表完整的工作流程(如果可能的话)?

    由于

0 个答案:

没有答案