📅  最后修改于: 2020-10-30 10:04:46             🧑  作者: Mango
我们已经了解了集成代码中端点的外观。到目前为止,我们使用的表达式是端点:file:/ order,jms:orderQueue,direct:distributeOrderDSL 。如您所见,它们遵循URI规范格式。在评估此URI时, CamelContext创建Endpoint实例。您无需担心在DSL中实例化Endpoint的实现。
以我们前面的示例为例,您可以在Java DSL中指定端点,如下所示:
from ("file:/order").to("jms:orderQueue");
在春天,就像这里-
在这两种情况下,端点都是一个常量字符串。在某些情况下,您可能希望在运行时构建此字符串。您可以使用Java String格式化程序方法来实现。 Camel提供了另一种更简单的方法来在运行时创建这些URI字符串。为此,Camel提供了fromF和toF方法,它们接受带有用户指定参数的参数。以下语句说明了toF方法的用法–
from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);
由于有了这些方法,因此不再需要使用Java内置的String格式化程序方法。
骆驼默认使用简单语言来计算端点表达式。简单语言的设计主要是为了评估表达式和谓词,而无需过多地担心XPath的复杂性。为了评估谓词,可以将另一种语言(例如xpath)与默认的简单语言结合使用。这是通过使用加号分隔其他语言来完成的。这里的代码片段显示了如何将xpath字符串连接到用Simple编写的表达式。
from("direct:start")
.toD("jms:${orderQueue}+language:xpath:/order/@id");
在Spring中,您可以达到与此处相同的效果-
您可以根据需要连接任意多种语言,每种语言都与前一种语言加一个加号分隔。支持的语言列表可以在这里找到。