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、日期或内容。
例如,在以下示例中,我们在 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 查询参数解析程序是 in-use,它将在冒号上分隔参数。另外请注意,Spring query parser 会为每个查询调用 bean 两次。
bean 有以下方法:
请注意,没有消息正文和标头的现有 Exchange
,因此您可以在消费者中使用的简单表达式最可用于调用 bean 方法,如本例中所示。