我已经使用 Apache Felix 作为我的 OSGi 运行时开发应用程序一段时间了,到目前为止,进展非常好。然而,我现在想采用依赖注入(inject),Apache Felix 的“默认”机制似乎是 iPOJO。
但是,我发现有关 Apache felix 的文档和教程太薄弱,我还没有取得任何进展。所以我准备改变,但首先我最好解释一下我正在尝试做的(非常简单的)想法。
给定两个 bundle ;
消费包
package bundles.consumer;
class Consumer implements BundleActivator{
@Inject
private Producer producer;
public void bundleActivated(BundleContext con) {
this.producer.getNextItem();
}
}
生产者 bundle
package bundles.producer;
@Singleton
class Producer {
public String getNextItem() {
return "item x";
}
}
我希望 OSGi 运行时启动 Consumer 包,意识到它需要一个 Producer 才能工作,然后框架启动 Producer 包并将实例注入(inject)到 Consumer 中。简单。 iPOJO 建议仅使用注释(@Singleton、@Inject)或类似的方法可以做到这一点,但我根本无法让它工作。 OSGi 显然有声明性服务,但这意味着要编写大量 XML,而我确实想避免这样做。
Anywoo,我准备采用 JBoss、Equinox 或替代 OSGi 运行时以及替代依赖注入(inject)机制,无论是 Peaberry、Spring DM 还是完全不同的东西。我已经在使用 Maven 了。
我要问的是,有人可以使用生产者和消费者的想法创建一个 Hello World 来帮助我开始吗?我真的花了很多时间阅读并发现学习曲线难以克服!
<小时/>编辑,我尝试使用 SCR:http://tydus.net/codeExamples/mvnScr.tar
最佳答案
关于java - 在 OSGi 环境中开始使用捆绑 DI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797301/