在Apache Camel路由中使用相同的Spring Bean实例

时间:2016-04-22 10:44:15

标签: java spring apache-camel

我有以下路线:

<route id="myRoute">
    <from uri="direct:myRoute"/>
    <to uri="bean:beanA?method=processLocal"/>
    <to uri="bean:beanB?method=methodB"/>
    <to uri="bean:beanC?method=methodC"/>
    <to uri="bean:beanA?method=processGlobal"/>
</route>

其中beanA,beanB和beanC是具有原型范围的Spring组件。 beanA中的方法processLocal为类实例字段设置一个值,然后我需要在方法processGlobal中使用它。但是因为我的bean的范围是原型,null中的字段值为processGlobal。据我所知,这是因为<to uri="bean:..."/>使用camel ApplicationContextRegistry类通过应用程序上下文获取bean,导致新bean(因为原型)。所以,问题是:是否可能为路由初始化bean一次,然后在各种<to uri.../>语句中使用它?或许这种方法是错误的,我应该考虑一些完全不同的方法?感谢。

0 个答案:

没有答案