【发布时间】:2015-10-10 14:04:39
【问题描述】:
我想实例化一个 bean 并向流发送/接收 vm:// 消息。我关注了this,但被覆盖的方法没有收到任何消息。我是否需要实例化一个 VM 连接器并将其引用传递给首先实现 MuleSubscriptionEventListener 的 bean?
【问题讨论】:
标签: java spring mule mule-component
我想实例化一个 bean 并向流发送/接收 vm:// 消息。我关注了this,但被覆盖的方法没有收到任何消息。我是否需要实例化一个 VM 连接器并将其引用传递给首先实现 MuleSubscriptionEventListener 的 bean?
【问题讨论】:
标签: java spring mule mule-component
VM 在许多情况下都完全有效,尤其是在具有 HA 集群的 Mule EE 中。
如果您需要从 spring 引用的 java 组件发送到 vm,您可以考虑两个选项:
【讨论】:
通常,Mule 鼓励开发人员不要再使用 vm-endpoints,例如参见 Mule VM docs
引用:
VM 传输通常用于实现复杂的集成 由多个应用程序组成。 Mule 3 的改进消除了 在许多情况下需要VM。您可以直接使用流引用 从另一个流中引用一个流,中间没有传输。
我真的会考虑流引用,它们要好得多。对于 VM-Endpoints,Mule 创建了一个完全不同的东西(在消息有效负载的标头中传递变量)等等。
VM 端点仅在您希望从外部调用某些子流时才有意义,例如从单元测试中调用。
我认为您链接的文档中描述的实现非常复杂。为什么不简单地将 Java 组件放入链接到 Spring bean 的 Mule 流中?这样你就可以完全控制从 Mule 到 Spring 的调用。它可以是 Java 转换器或 Java 组件。我认为到目前为止 Java Component 听起来更像你需要的:
见:https://docs.mulesoft.com/mule-user-guide/v/3.6/using-spring-beans-as-flow-components
【讨论】: