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)    收藏  举报

导航