326.11. 在制作者中使用表达式参数
从 Camel 2.14 开始提供
在下面的给定路由中,我们希望从数据库获取所有项目。它使用交换的正文来定义许可证,并使用属性值作为第二个参数。
from("direct:projects")
.setBody(constant("ASF"))
.setProperty("min", constant(123))
.to("sql:select * from projects where license = :#${body} and id > :#${property.min} order by id")
from("direct:projects")
.setBody(constant("ASF"))
.setProperty("min", constant(123))
.to("sql:select * from projects where license = :#${body} and id > :#${property.min} order by id")
326.11.1. 在消费者中使用表达式参数 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
从 Camel 2.23 开始提供
当将 SQL 组件用作消费者时,您现在可以使用表达式参数(简单语言)来构建动态查询参数,如调用 bean 的方法来检索 id、日期或内容。
例如,在以下示例中,我们在 bean myIdGenerator 上调用 nextId 方法:
from("sql:select * from projects where id = :#${bean:myIdGenerator.nextId}")
.to("mock:result");
from("sql:select * from projects where id = :#${bean:myIdGenerator.nextId}")
.to("mock:result");
bean 有以下方法:
请注意,没有消息正文和标头的现有 Exchange,因此您可以在消费者中使用的简单表达式最可用于调用 bean 方法,如本例中所示。