4

我有一个我构建的抽象消息处理器,我想将其封装在布尔评估中,以便在某些条件下将其关闭。我正在寻找这样的东西:

<flow name="myFlow">
    <if expression="${myFlag} == true">
        <mynamespace:myCustomMessageProcessor .../>
    </if>
</flow>

这在 Mule ESB 中可行吗?有我可以回顾的例子吗?

4

4 回答 4

2

这是一种标准的基于内容的路由模式,存在于所有ESB产品中。

Mule中,您想使用选择路由器- 参见例如Mule School:使用流控制 - 选择路由器教程。

于 2013-03-10T20:55:19.623 回答
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>

让我知道它是否有效....

于 2013-09-25T17:36:22.880 回答
0

Mule Choice Router 是使用 if else 或 if elseif 实现的最佳选择。即使您使用表达式来实现相同的目的。

于 2015-01-17T01:27:23.433 回答
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>
于 2019-06-23T15:32:21.000 回答