我开始在eclipse中使用OSGI。在声明式服务下,我发现激活服务后会执行两种方法。即激活和绑定。这两者有什么区别?
如果要执行要在启动服务时执行的某些操作,应将其放在 Bind 方法还是 Activate 方法中?
绑定方法用于将服务引用注入组件实例,即组件所依赖的服务。激活方法(如果已声明)在激活过程的最后一步中调用,当组件满足时。
因此,我想您想在激活方法中编写操作代码,因为此时您知道所有必需的依赖项都已解决。
另请注意,声明性服务组件本身不是服务,但它可以提供服务。
激活组件时调用 activate
方法。因此,这是执行任何初始化活动的好时机。对于组件引用的每个服务,将调用一次 bind
方法。因此,如果您的组件具有对 LogService
的引用,则将调用用于LogService
的 bind
方法,并将每个LogService
对象绑定到您的组件。然后,该方法可以将LogService
存储在字段中。