“表达式”和“表达式”的含义是什么? Camel中的“BeanExpression”?

时间:2016-05-18 09:45:23

标签: apache-camel

根据官方的Camel文档,“Expressions and Predicates可用于在DSL或Xml配置中创建各种企业集成模式,如收件人列表。 为了支持动态规则,Camel支持使用各种不同语言的可插入表达式策略。“

有人可以用简单的英语详细说明或解释吗?

1 个答案:

答案 0 :(得分:1)

表达式用于从当前消息交换返回任何值。表达式的一个示例是使用Xpath从消息正文中的XML中检索节点。当文档说可插入策略时,它基本上说你可以使用不同的方法/语言,包括Groovy,JavaScript等。谓词是一个专用表达式,用于评估消息交换的条件。它类似于您在Java if语句中找到的条件。谓词始终返回布尔值。

这是一个代码示例,其中消息来自ActiveMQ并基于XPath谓词,消息被路由到另一个队列。

from("activemq:queue:ORDER_ITEM_PROCESSING").
   choice().
      when().xpath("/o:Order/o:OrderType/o:FulfillmentCenter = '" + 
            com.pluralsight.orderfulfillment.generated.FulfillmentCenter.ABC_FULFILLMENT_CENTER.value()
            + "'", namespace).to("activemq:queue:ABC_FULFILLMENT_REQUEST")

希望这会有所帮助。