如何在 spring xd 中跨模块共享一个 bean

how to share a bean across modules in spring xd

假设我想用这个定义创建一个流

file | serviceActivator1 | transform | serviceActivator2

所以我在这个定义中有两个自定义模块。我的理解是 spring xd 将为每个 component/module 创建一个子上下文并将其部署在容器中。

如何在 serviceActivator1 和 serviceActivator2 之间共享一个 bean。基本上这个bean应该在父上下文中定义,而不是每个模块的子上下文。

参见How to Add a Spring bean to the XD Container。请记住,如果模块 运行 在同一个容器中,它们只会看到相同的 bean 实例。

您还需要一个自定义插件来使 bean 可用于模块。

但是,通常最好使用消息 headers 在模块之间共享状态。