OSGI开发 -> 注册与使用服务
1. 什么是服务?
简单的说,服务就是“为别人所做的工作”,比如两个对象互相调用方法,那么被调用者就是在为调用者做工作,即提供服务。
2. 为什么使用服务?
a. 降低耦合,减少服务的使用者和提供者之间的耦合,利于组件复用
b. 更加强调接口而不是实现,服务的使用者只关注服务的功能,而不关注具体实现
c. 对于依赖有比较清晰的描述
d. 支持多个实现的筛选
3. 注册服务
首先在Server的start方法中注册服务,如下图,我们通过registerService方法注册了一个HelloImpl的服务,并添加到服务列表中:

HelloImpl中有一个公共方法和一个构造方法,如下图:

最后,在MANIFEST.MF文件中把我们注册服务的包导出,这样其他bundle就可以使用这个服务了,如下图

4. 使用服务
在Client的start方法中获取服务,并使用,如下图:

在MANIFEST.MF文件中导入我们需要使用的服务的包,如下图

5. 注销服务
服务在bundle停止的时候需要注销,在stop方法中通过unregister注销服务,如下图:

6. 打包并启动服务
打包Server和Client,然后启动服务,如下图,可以看到我们的服务已经正常启动了
posted on 2017-10-23 23:51 ImiracleLee 阅读(298) 评论(0) 收藏 举报
浙公网安备 33010602011771号