Apache Camel路由步骤范围总是单身吗?

时间:2018-03-12 06:37:00

标签: apache-camel

我的意思是,如果(例如)处理器bean在Blueprint XML中声明并且只包含在一个路由中,那么它的单个实例将被在此路由中执行消息路由的每个线程使用。所以我猜这种bean声明的原型范围没有任何意义。 将原型范围用于路径步骤声明的唯一正确位置是在多个路径中使用bean的情况。在这种情况下,将为每个路由创建单独的bean实例。 我怀疑吗?

1 个答案:

答案 0 :(得分:1)

否如果您在多个路由中引用与您正在使用的实例相同的bean ID。

您可以将Camel bean组件配置为使用cache=false关闭其缓存,并将bean定义为原型范围,以便每次调用都有一个新实例 - 但是它很少使用,也是一种不好的做法。最好将bean编码为线程安全的。