如何处理子流程

时间:2014-12-04 23:37:01

标签: spring-integration

我们可以在Spring Integration中以某种方式使用“子流”吗?

我有许多不同的过程会使用相同的“子流”。这些过程始终是相同的部分,可以放入单独的文件中。

实施这些流程的正确方法是什么?

我试图找到一个在Spring Integration中使用子流的解决方案,但我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

一种简单的技术是将子流放在具有“众所周知的”输入和输出通道的单独文件中(子流以一个通道开始,以另一个通道结束)。然后,简单地<import/>子流并向/从输入/输出通道发送/消费。

或者,您可以使用Java DSL来定义子流并将其添加到需要子流的应用程序上下文中而不是导入...

@Configuration
public class MySubflowDefinition {

    @Bean
    public IntegrationFlow subflow() {
        return IntegrationFlows.from("someInChannel")
           .transform(...)
           ...
           .channel("someOutChannel")
           .get();
    }
}

有关更正式的“子流”定义,请参阅spring-integration-flow extension。此解决方案还允许从同一应用程序上下文中的多个位置调用相同的子流。

spring-integration-java-dslspring-integration-flow都可以在spring repo和maven central中找到(当前)版本1.0.0.RELEASE。