'Bind'和"激活"之间有什么区别



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

如果要执行要在

启动服务时执行的某些操作,应将其放在 Bind 方法还是 Activate 方法中?

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

因此,我想您想在激活方法中编写操作代码,因为此时您知道所有必需的依赖项都已解决。

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

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

最新更新