我想在 OSGI 中创建一些抽象包。这个想法是,当我们假设bundle Ax(x从1到9)需要通过B提供的服务绑定(bind)到bundle B时,可以通过制作asbtractA来更轻松地完成此操作(因此Ax扩展了abstractA)
这里的abstractA是一个带有声明服务文件的包。 xml 文件描述了bundle B 所引用的服务,并且在abstractA 的相应类中实现了bind、unbind 和start 方法。
假设 Ax 有自己的启动方法 startx,并绑定(bind)到几个服务,因此该包有自己的 .xml 文件。
问题:start(来自abstractBundle)和startx都会被调用吗?来自bundleAx和bundleabstractA引用的服务的绑定(bind)会发生吗?
最佳答案
虽然我当然不清楚你的具体细节,但我对这里“继承”的使用表示怀疑。在我看来,您最好使用以下任一方法:
- 代表团。含义:将通用功能委托(delegate)给 bundle A 中的服务。
- 服务工厂解决方案。含义:通过工厂模式创建多个服务,其中工厂由bundle A 注册。
关于java - 尝试在 OSGI 中创建抽象包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24732199/