Java 在apachecamel中使用guice
我将ApacheCamel 2.11.1与Camel guice一起使用,但我不知道如何为AutoStart引导bean 使用camel-context.xml,我可以编写:Java 在apachecamel中使用guice,java,apache-camel,guice,Java,Apache Camel,Guice,我将ApacheCamel 2.11.1与Camel guice一起使用,但我不知道如何为AutoStart引导bean 使用camel-context.xml,我可以编写: <beans xmlns="http://www.springframework.org/schema/beans" ... <camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="my-camel-context"&g
<beans xmlns="http://www.springframework.org/schema/beans" ...
<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="my-camel-context">
<camel:packageScan>
<camel:package>package.routes</camel:package>
</camel:packageScan>
</camel:camelContext>
<bean id="fooBean" class="package.beans.FooBean" />
<bean id="barBean" class="package.beans.BarBean" >
<constructor-arg ref="fooBean"/>
<constructor-arg ref="my-camel-context"/>
</bean>
...
</beans>
camel调用在BarBean中实现的钩子,但是如何使用guice解决这个问题呢
编辑:我正在使用org.apache.camel.guice.Main启动我的camel。如果您将
camel
与guice
一起使用,那么您是通过CamelModule
配置应用程序,对吗
然后,CamelModule
正在使用or,它是JavaTM平台通用注释的正式规范
因此,您可以自由地使用它们来管理对象生命周期
要引导应用程序,您的主要应用程序如下所示:
final Injector inj = Guice.createInjector(new MyCamelModule());
Main main = new Main() {
@Override
protected Injector getInjectorFromContext() throws Exception {
return inj;
}
};
main.enableHangupSupport();
main.run(args);
您的MyCamelModule
应该包含bind
您的bean。看起来您的bean刚刚实现,所以您需要做的一切就是将@Inject
放入bean构造函数
final Injector inj = Guice.createInjector(new MyCamelModule());
Main main = new Main() {
@Override
protected Injector getInjectorFromContext() throws Exception {
return inj;
}
};
main.enableHangupSupport();
main.run(args);