第 30 章 简单语言


摘要

简单的语言是在 Apache Camel 中开发的一种语言,专门用于访问和操作交换对象的各个部分。其语言就像最初创建之时一样简单,它现在包括了一组完整的逻辑运算符和组合。

30.1. Java DSL

Java DSL 中的简单表达式

在 Java DSL 中,路由中使用 simple() 命令有两种样式。您可以将 simple() 命令作为参数传递给处理器,如下所示:

from("seda:order")
  .filter(simple("${in.header.foo}"))
  .to("mock:fooOrders");
Copy to Clipboard Toggle word wrap

或者,您可以将 simple() 命令作为处理器的子使用调用,例如:

from("seda:order")
  .filter()
  .simple("${in.header.foo}")
  .to("mock:fooOrders");
Copy to Clipboard Toggle word wrap

在字符串中嵌入

如果您要在纯文本字符串中嵌入一个简单表达式,则必须使用占位符语法 ${Expression}。例如,要在字符串中嵌入 in.header.name 表达式:

simple("Hello ${in.header.name}, how are you?")
Copy to Clipboard Toggle word wrap

自定义开始和访问令牌

从 Java,您可以通过调用 changeFunctionStartToken 静态方法和 SimpleLanguage 对象上的 changeFunctionEndToken 静态方法来自定义启动和结束令牌(默认为{} )。

例如,您可以在 Java 中将开始和最终令牌更改为 [],如下所示:

// Java
import org.apache.camel.language.simple.SimpleLanguage;
...
SimpleLanguage.changeFunctionStartToken("[");
SimpleLanguage.changeFunctionEndToken("]");
Copy to Clipboard Toggle word wrap
注意

自定义 start 和 end 令牌会影响在类路径上共享相同的 camelcore 库的所有 Apache Camel 应用程序。例如,在 OSGi 服务器中,这可能会影响许多应用程序,而在 Web 应用程序(WAR 文件中)中,它只会影响 Web 应用程序本身。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat