我正在使用带有骆驼向导的Apache Camel 2.11.1,但是我不知道如何引导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">
<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>
BarBean.class
public class BarBean implements SmartLifecycle, StartupListener {
...
}
骆驼调用在BarBean中实现的钩子,但是如何使用guice解决此问题?
编辑:我正在使用org.apache.camel.guice.Main启动我的骆驼。
如果与您一起使用Camel
,Guice
则通过来配置应用程序CamelModule
,对吗?
然后CamelModule
使用Wikipedia:JSR250或JSR250,这是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才刚刚实现,因此您要做的一切都放在@Inject
了bean的构造函数中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句