如何在 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 在模块之间共享状态。
假设我想用这个定义创建一个流
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 在模块之间共享状态。