Apache Camel - 在处理器中设置值

时间:2014-06-06 21:30:44

标签: java apache-camel

我不确定有多少人有机会与Camel处理器打交道。所以这是我关注的问题:

我正在获取一些信息并将其发送给处理器。从处理器,它通过服务进行数据库调用并插入记录。我正在使用POJO并通过交换对象在处理器中设置模型中的值。我根本没有遇到任何问题,但处理器不是用于在列表或任何其他结构中设置值。它应该简单地对交换对象进行一些处理并将其传递,主要是因为可能存在多个线程可以调用同一处理器的情况。

这就是我想知道的:

  1. Camel中是否还有其他处理器替代方案,我可以在模型上进行此类设置。例如:窃听,拦截器等。
  2. 如果没有其他可能的方法?

1 个答案:

答案 0 :(得分:3)

Processors是单身人士,因此不应该用来存储任何类型的州......

一些选择......

  • 将状态信息存储在Exchange属性或正文标题

  • Processor替换为Bean,您可以在其中管理范围(原型等)

  • 对非线程安全引用使用ThreadLocal变量