在单个应用程序中使用多个服务激活器

Using multiple service activators in single application

目前我在同一个应用程序中有多个工作流 运行,但它们最终会 运行 在它们专用的 jvm 中。 看起来我只能拥有一个提供一种处理方法的服务激活器,无法找到如何为每个独立的工作流添加多个,本质上是一个。 非常感谢任何文档 link 或代码示例。

return IntegrationFlows.from(receivedDataChannel())
    .enrichHeaders(h -> h.header("kafka_source_topic", alertsInputTopic))
    .enrichHeaders(h -> h.header("target", "MLAlgo"))
    .transform(Transformers.fromJson())
    .filter(this::shouldProcess)
    .log()
    .handle(this)
    .log()
    .get();

所以这个 handle 方法非常适合一个工作流程,但我有几个,每个都需要自己专用的 handle 方法来完成该工作流程中的工作。我总是可以做一些 hack 来管理一个,但我想要干净的单独代码。谢谢

而不是使用 handle(this) - 将服务代码放在单独的 class 中,将其添加为 @Bean 并将其放在原型 @Scope 中;然后

.handle("beanName")

每个人都会得到一份自己的副本。