【发布时间】:2018-04-18 13:47:45
【问题描述】:
我正在开发一个骆驼应用程序,我想在其中将 bean 的范围保持在路由级别。这意味着,如果我从两个不同的路由调用一个 bean,则应该创建两个实例。但是在该路由中,应该为该 bean 使用同一个实例。以下是我的代码:
<bean id="testbean" class="testClass"> </bean>
<camelContext id="test"
xmlns="http://camel.apache.org/schema/blueprint">
<route id="1">
<from uri="timer"/>
<to uri="bean:test"/>
</route>
<route id="2">
<from uri="timer"/>
<to uri="bean:test"/>
</route>
</camelContext>
应该在路由 2 中创建单独的 bean 实例。如果有任何想法,请提出建议。
【问题讨论】:
-
为什么要这么做,是什么原因造成的?
-
@ClausIbsen - 因为如果路由 1 正在对一个测试类实例进行一些处理,我不希望路由 2 使用该类的相同实例。它应该有自己的 bean 实例.有什么办法可以让我只有在路线1完成任务后才能触发路线2。谢谢
-
@nik,您并没有真正回答这个问题。是什么要求让您认为每个路由都需要两个实例作为实现该要求的解决方案?
-
@Ralf - 感谢您的询问。我需要每条路线有一个实例,而不是每条路线有两个实例。
-
@Ralf - 我刚刚阅读了 bean 范围,用原型定义 bean 可以为我提供这样的功能吗?