以下是camle-osgi示例的片段。我可以获取camel上下文但是如何获得原始的spring应用程序上下文?或者我怎么能得到“mybean”的引用?
MyRouteBuilder.java:
public class MyRouteBuilder extends RouteBuilder {
public static void main(String[] args) throws Exception{
new Main().run(args);
}
public void configure() {
// set up the transform bean
ModelCamelContext mc = getContext();//ok, I can get the camel context fine
//but how to get the spring context to get to "mybean"???
//set up routes
}
}
beans.xml中:
<beans>
<camel:camelContext xmlns="http://camel.apache.org/schema/spring">
<package>org.apache.servicemix.examples.camel</package>
-----
</route>
</camel:camelContext>
<bean id="mybean" class="myclass"/>
</beans>
答案 0 :(得分:0)
您不应直接使用spring上下文。而是使用弹簧功能注入所需的豆。
第三种选择是使用getContext()。getRegistry()。注册表允许按名称或类型访问spring上下文的所有bean。
如果我们已经没有选择,那将不会是骆驼: - )
所以另一个选择是使用camel的bean组件从spring上下文中访问bean:http://camel.apache.org/bean.html