我正在开发一个camel应用程序,我希望将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实例。请建议是否有任何想法。
答案 0 :(得分:3)
Apache Camel或类似产品中不支持路由范围的bean。您可以拥有共享单例bean或原型bean(每个调用的新实例)。这些是来自Spring XML或Blueprint XML的范围。
要使用原型范围,您需要同时:
bean:xxx
端点中设置<bean id="testbean" class="testClass"> </bean>
<bean id="testbean2" class="testClass"> </bean>
选项您还可以考虑使用两个bean,例如
testbean
然后在第一条路线中使用testbean2
,在第二条路线中使用targetButton = $(".btn.btn-danger.btn-sm.motherboard")
let elementToBeModified = targetButton.closest('tr').find('td:nth-child(2)');
elementToBeModified.empty();
elementToBeModified.html(`
<td>
<img src="" alt="" height="42" width="42">
<a href="">
Awesome title to replace!
</a>
</td>
`);
。