根据官方的Camel文档,“Expressions and Predicates可用于在DSL或Xml配置中创建各种企业集成模式,如收件人列表。 为了支持动态规则,Camel支持使用各种不同语言的可插入表达式策略。“
有人可以用简单的英语详细说明或解释吗?
答案 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")
希望这会有所帮助。