Apache Camel中的自定义IdempotentConsumer / Processor

时间:2014-02-11 12:27:59

标签: apache-camel

我想在IdempotentConsumer中执行自定义逻辑。我扩展了类并实现了逻辑。如何将此添加到我的路线?

我是否必须制作自己的Definition类?我是否将其添加为处理器?如何获取传递给构造函数的参数?

1 个答案:

答案 0 :(得分:0)

嗯,定制消费者/生产者可能有点矫枉过正。我认为某种自定义逻辑足以通过处理器或自定义bean来实现。

1.Bean

查看bean binding您可以使用simple language将参数传递给您的方法。它看起来像这样:

.bean(OrderService.class, "doSomething(${body}, true)")

.to("bean:orderService?method=doSomething(null, true)")

2.Processor

由于驼峰框架的并发问题,你必须意识到你的类应该是无状态。你的构造函数应该是空的,你的变量是最终的,否则可能会发生一堆魔法。您要传递给逻辑组件/处理器的所有内容都应通过 Exchange 对象传递。您可以将变量存储在getin()getOut()条消息中作为标题或正文或Exchange属性,并将其传递给下一个端点。交换将在您通过骆驼路线流动时动态变化。它应该是你唯一的一个可变对象。