- Apache Camel 教程
- Apache Camel - 首页
- Apache Camel - 简介
- Apache Camel - 概述
- Apache Camel - 特性
- Apache Camel - 架构
- Apache Camel - CamelContext
- Apache Camel - 端点
- Apache Camel - 组件
- Apache Camel - 消息队列
- Apache Camel - 项目
- 使用 Spring 与 Camel
- Apache Camel 有用资源
- Apache Camel - 快速指南
- Apache Camel - 有用资源
- Apache Camel - 讨论
Apache Camel - 端点
我们已经了解了集成代码中端点的外观。我们迄今为止使用的表达式,例如file:/order、jms:orderQueue、direct:distributeOrderDSL,都是端点。如您所见,它们遵循 URI 规范格式。在评估此 URI 时,CamelContext 会创建Endpoint实例;您无需担心在 DSL 中实例化Endpoint实现。
以我们之前的示例为例,您可以在 Java DSL 中指定端点,如下所示:
from ("file:/order").to("jms:orderQueue");
在 Spring 中,如下所示:
<route> <from uri = "file:/order"/> <to uri = "jms:orderQueue"/> </route>
在这两种情况下,端点都是一个常量字符串。在某些情况下,您可能希望在运行时构建此字符串。您可以使用 Java 的String格式化程序方法来做到这一点。Camel 提供了另一种更简单的方法来在运行时创建这些 URI 字符串。为此,Camel 提供了fromF和toF方法,这些方法接受用户指定参数的参数。以下语句说明了toF方法的使用:
from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);
由于这些方法的存在,因此无需使用 Java 内置的String格式化程序方法。
Camel 默认使用Simple语言来计算端点表达式。Simple语言主要用于评估表达式和谓词,而无需过多考虑XPath的复杂性。为了评估谓词,您可以将另一种语言(例如xpath)与默认的Simple语言结合使用。这可以通过使用加号分隔其他语言来完成。此处的代码片段展示了如何将xpath字符串连接到用Simple编写的表达式。
from("direct:start") .toD("jms:${orderQueue}+language:xpath:/order/@id");
在Spring中,您可以像这里一样实现相同的功能:
<route> <from uri = "direct:start"/> <toD uri = "jms:${orderQueue}+language:xpath:/order/@id"/> </route>
您可以根据需要连接任意数量的语言,每个语言都用加号与前一个语言分隔。支持的语言列表可以在此处找到。
广告