gpt4 book ai didi

java - Mule:不同组件的接口(interface)绑定(bind),如何避免重复?

转载 作者:行者123 更新时间:2023-12-03 02:26:05 26 4
gpt4 key购买 nike

我们有以下骡流:

<flow name="mule-flow-1">
<component>
<spring-object bean="springBean_1"/>
<binding interface="com.acme.EmailService" method="send">
<vm:outbound-endpoint path="send-email" exchange-pattern="one-way"/>
</binding>
</component>
</flow>

但现在我们想引入新的流程,新的 Spring bean 使用相同的 EmailService.send 方法,因此,我们可以这样做:

<flow name="mule-flow-2">
<component>
<spring-object bean="springBean_2"/>
<binding interface="com.acme.EmailService" method="send">
<vm:outbound-endpoint path="send-email" exchange-pattern="one-way"/>
</binding>
</component>
</flow>

如您所见,我们在两个不同的流程中绑定(bind)了 EmailService.send 方法两次,这是纯粹的代码重复。

是否可以将 EmailService.send 方法绑定(bind)在公共(public)位置,并仅在 mule-flow-1mule-flow-2< 中使用 ref/

最佳答案

也许你可以使用子流?在那里定义您的组件,然后在您想要重用它的任何流程中使用 flow-ref。

<sub-flow name="mule-flow-send">
<component>
<spring-object bean="springBean_1"/>
<binding interface="com.acme.EmailService" method="send">
<vm:outbound-endpoint path="send-email" exchange-pattern="one-way"/>
</binding>
</component>
</sub-flow>

然后重用:

<flow name="mule-flow-1">
<flow-ref name="mule-flow-send" doc:name="mule-flow-send"/>
</flow>
<flow name="mule-flow-2">
<flow-ref name="mule-flow-send" doc:name="mule-flow-send"/>
</flow>

关于java - Mule:不同组件的接口(interface)绑定(bind),如何避免重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com