You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java的Apache Camel路由中引用Exchange属性计算

Apache Camel中引用Exchange属性计算新属性的正确写法

直接给你几种可行的写法,都不需要手动获取Exchange引用:

  • 用Simple表达式直接计算(最简洁)
    你之前混淆了配置文件属性和Exchange属性的引用方式,Exchange属性要写${exchangeProperty:n},而且Simple本身支持算术运算,直接一步到位:

    .setProperty("2n", simple("${exchangeProperty:n} * 2"))
    

    Camel会自动在路由执行时从当前Exchange里取出n属性,完成乘法计算后赋值给2n。

  • 用Lambda表达式(适合复杂逻辑)
    如果需要更灵活的逻辑,可以用Lambda直接操作Exchange对象:

    .setProperty("2n", exchange -> {
        Integer nValue = exchange.getProperty("n", Integer.class);
        return nValue != null ? 2 * nValue : null;
    })
    

    这里Lambda的参数就是当前的Exchange引用,直接调用getProperty获取值再计算。

  • 补充说明
    你之前写的${properties:n}是用来读取配置文件中的属性(比如application.properties里的键值对),不是Exchange的属性,所以会取不到值,一定要改成${exchangeProperty:n}。

内容的提问来源于stack exchange,提问作者Kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:40:44