“绑定”和“激活”之间有什么不同

时间:2012-05-17 09:42:14

标签: eclipse osgi declarative-services

我开始在eclipse中使用OSGI。在声明服务中,我发现一旦激活了服务,就会执行两种方法。即激活和绑定.. 这两者有什么区别?

如果我想在启动服务时执行某些操作,是将它放在Bind方法还是Activate方法中?

2 个答案:

答案 0 :(得分:2)

绑定方法用于将服务引用注入组件实例,即组件所依赖的服务。当满足组件时,在激活过程的最后一步中调用activate方法(如果声明)。

所以,我想你想要在activate方法中编写你的动作,知道你的所有强制依赖都已经解决了。

另请注意,声明性服务组件本身不是服务,但它可以提供一个服务。

答案 1 :(得分:1)

激活组件时会调用activate方法。所以这是执行任何初始化活动的好时机。对于组件引用的每个服务,都会调用一次bind方法。因此,如果您的组件引用LogService,则会bind LogService LogService方法,并且每个LogService对象都会绑定到您的组件。然后,该方法可以将{{1}}存储在字段中。