骆驼蓝图中bean的路由级范围
Route level scope for bean in camel blueprint
我正在开发一个 camel 应用程序,我想在其中将 bean 的范围保持在路由级别。这意味着,如果我从两个不同的路由调用一个 bean,则两个实例应该在该路由内获得 created.But 相同的单个实例应该用于该 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 实例。有想法的请多多指教
Apache Camel 等不支持路由作用域 bean。您可以拥有共享单例 bean 或原型 bean(每次调用新实例)。这些是来自 Spring XML 或 Blueprint XML.
的范围
要使用原型作用域,您需要:
- 在 Spring/Blueprint XML
中将 bean 声明为原型
- 在 Camel 的
bean:xxx
端点中设置 cache=false
选项
你也可以考虑有两个bean,例如
<bean id="testbean" class="testClass"> </bean>
<bean id="testbean2" class="testClass"> </bean>
然后在第一条路线中使用testbean
,在第二条路线中使用testbean2
。
我正在开发一个 camel 应用程序,我想在其中将 bean 的范围保持在路由级别。这意味着,如果我从两个不同的路由调用一个 bean,则两个实例应该在该路由内获得 created.But 相同的单个实例应该用于该 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 实例。有想法的请多多指教
Apache Camel 等不支持路由作用域 bean。您可以拥有共享单例 bean 或原型 bean(每次调用新实例)。这些是来自 Spring XML 或 Blueprint XML.
的范围要使用原型作用域,您需要:
- 在 Spring/Blueprint XML 中将 bean 声明为原型
- 在 Camel 的
bean:xxx
端点中设置cache=false
选项
你也可以考虑有两个bean,例如
<bean id="testbean" class="testClass"> </bean>
<bean id="testbean2" class="testClass"> </bean>
然后在第一条路线中使用testbean
,在第二条路线中使用testbean2
。