Apache camel ApacheCamel POJO Bean处理器是单例还是原型?

Apache camel ApacheCamel POJO Bean处理器是单例还是原型?,apache-camel,Apache Camel,我使用Camel的springdsl来构建路由,并使用pojobean作为处理器 起初,我认为: <bean ref="myPojoBeanProcessor"/> 我想知道,如果采用后一种方法,bean对象是否会随每个请求一起实例化,或者bean实例是否会被缓存并用作单例(如spring中的默认值) 我无法在camel文档或谷歌上找到答案。有人知道这个问题的答案吗?你为什么不试试呢:) Camel将使用默认的无参数构造函数一次性创建一个实例,并缓存该实例,例如它的单例作用域。以下

我使用Camel的springdsl来构建路由,并使用pojobean作为处理器

起初,我认为:

<bean ref="myPojoBeanProcessor"/>
我想知道,如果采用后一种方法,bean对象是否会随每个请求一起实例化,或者bean实例是否会被缓存并用作单例(如spring中的默认值)


我无法在camel文档或谷歌上找到答案。有人知道这个问题的答案吗?

你为什么不试试呢:)


Camel将使用默认的无参数构造函数一次性创建一个实例,并缓存该实例,例如它的单例作用域。

以下是MethodCallExpression#createExpression(CamelContext)中的相关代码片段:


Camel正在缓存它在字段中创建的实例。

我就是这么想的。只是需要确认我的结论。(见下面我的答案)谢谢@Claus!
<bean beanType="com.mycompany.transformation.MyPojoBeanProcessor"/>
from("xxx").bean(MyPojoBeanProcessor.class).xxx
if (this.beanType != null)
{
  Expression answer;
  if (ObjectHelper.hasDefaultPublicNoArgConstructor(this.beanType)) {
    this.instance = camelContext.getInjector().newInstance(this.beanType);
    answer = new BeanExpression(this.instance, getMethod());
  } else {
    answer = new BeanExpression(this.beanType, getMethod());
  }
}