96.5. 在生成者中使用表达式参数
在 Camel 2.16.1 中,您还可以使用 Simple 表达式,它允许使用 OGNL,如消息正文上的标记,其中假设具有 getLicense 和 getMinimum 方法:
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
96.5.1. 在消费者中使用表达式参数 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
从 Camel 2.23 开始提供
当使用 ElSql 组件作为消费者时,您现在可以使用表达式参数(简单语言)构建动态查询参数,如在 bean 上调用方法来检索 id、date 或 something。
例如,在以下示例中,我们调用 bean myIdGenerator 中的 nextId 方法:
@NAME(projectsByIdBean)
SELECT *
FROM projects
WHERE id = :${bean#myIdGenerator.nextId}
@NAME(projectsByIdBean)
SELECT *
FROM projects
WHERE id = :${bean#myIdGenerator.nextId}
重要
注意在上面的 bean 语法中,必须在简单表达式中使用 # 而不是 :。这是因为 Spring 查询参数解析器正在使用中,它将在冒号上分隔参数。另外请注意,Spring 查询解析器将为每个查询调用 bean 两次。
和 bean 具有以下方法:
请注意,没有带有消息正文和标头的现有 Exchange,因此您可以在消费者中使用的简单表达式最可用于调用 bean 方法,如本例中所示。