我有一个我构建的抽象消息处理器,我希望将其封装在一个布尔值评估中,以便我可以在某些条件下将其关闭。我想写这样的东西:
<flow name="myFlow">
<if expression="${myFlag} == true">
<mynamespace:myCustomMessageProcessor .../>
</if>
</flow>
这在Mule ESB中是否可行?我可以查看一个例子吗?
答案 0 :(得分:2)
这是所有 ESB 产品中存在的基于内容的标准路由模式。
在 Mule 中,您希望使用选择路由器 - 请参阅例如Mule School: Using Flow Controls – Choice Router教程。
答案 1 :(得分:1)
如果要使用IF条件从属性文件中读取值,可以执行以下操作: -
<scripting:component doc:name="Groovy" doc:description="This component is used to check the value from properties file" >
<scripting:script engine="Groovy">
// use your if else code here like
if(${myFlag} == true)
{
return message.payload
}
</scripting:script>
</scripting:component>
让我知道它是否有效......
答案 2 :(得分:0)
Mule Choice Router是使用if else或if elseif实现的apt选项。即使您使用表达式来实现同样的目标。
答案 3 :(得分:0)
Mule允许使用<choice>
路由器进行条件检查。您可以为后备决策定义不同的<when>
和一个<othterwise>
条件。
<choice doc:name="Choice condition">
<when expression="#[flowVars.myVar = 'on']">
<logger level="INFO" message="Case: myVar is on" />
</when>
<when expression="#[flowVars.myVar = 'off']">
<logger level="INFO" message="Case: myVar is off" />
</when>
<otherwise>
<logger level="INFO" message="Case: otherwise the default route is used" />
</otherwise>
</choice>