OSGI服务发布与引用

OSGI context提供service register方法负责osgi服务的注册发布,服务发布时,可带上服务属性,这些服务属性可用于服务引用方查找服务时的filter。
一般来说,没有依赖的简单服务,可以直接在bundle的activator start方法里注册发布,但通常情况下,服务都会存在或多或少的依赖,由于osgi平台的动态性,被依赖的服务并不能确定在依赖它的服务所在的bundle启动前变为可用,所以,一般会借助service tracker来监听服务注册的事件,当被依赖的服务可用时,service tracker就能感知到,进而引用它,然后发布自己的服务,这样服务之间的依赖关系就不会受限于bundle的启动次序,而bundle的启动次序并不是确定。
除了采用java代码方式注册服务之外,Declarative Service、Blueprint都提供更简便的方式实现服务的注册和引用,并管理服务间的依赖关系。
但无论是Declarative Service还是Blueprint,其本质还是用osgi的service register、servicetracker之类来注册服务,只是这些工作有Declarative Service或Blueprint容器负责 ,你需要做的事就是写好相应的XML文档。
至于Declarative Service或Blueprint容器如何实现osgi服务的发布与引用,则是后话。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值