摘要
OSGi的一个标准就是各个bundle之间是相互隔离的,每个bundle都有自己的classloader,并且不同的版本之间都是相互隔离的,这样就使bundle从物理上进行了隔离,那么OSGi 的bundle之间是怎么进行通信的呢?
下面我们将要介绍3中方法。
Bundles之间通信的方法
方法 | 描述 |
1.Export-Package | 根据OSGi规范,每个工程可以通过声明Exprot-Package对外提供访问此工程中的类和接口,可以先把bundle导出,再导入到需要调用的bundle中 |
2.OSGi服务 | 通过将要对外提供功能声明为OSGi的服务实现面向接口、面向服务式的设计; |
3.Event | 基于OSGi的Event服务也是实现模块交互的一种可选方法,模块对外发布事件,订阅了此事件的模块就会相应地接收到消息,从而做出反应,以达到交互的目的。 |