137.13. 在生成者中使用表达式参数


在以下给定路由中,我们想要从数据库获取所有项目。它使用交换的正文来定义许可证,并将 属性的值用作第二个参数。

from("direct:projects")
  .setBody(constant("ASF"))
  .setProperty("min", constant(123))
  .to("sql:select * from projects where license = :#${body} and id > :#${exchangeProperty.min} order by id")

137.13.1. 在消费者中使用表达式参数

当使用 SQL 组件作为消费者时,您现在可以使用表达式参数(简单语言)构建动态查询参数,如在 bean 上调用方法来检索 id、date 或 something。

例如,在以下示例中,我们调用 bean myIdGenerator 中的 nextId 方法:

from("sql:select * from projects where id = :#${bean:myIdGenerator.nextId}")
    .to("mock:result");

和 bean 具有以下方法:

public static class MyIdGenerator {

    private int id = 1;

    public int nextId() {
        return id++;
    }

请注意,没有带有消息正文和标头的现有 Exchange,因此您可以在消费者中使用的简单表达式最可用于调用 bean 方法,如本例中所示。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部