gpt4 book ai didi

osgi - OSGi 组件和服务之间有什么区别

转载 作者:行者123 更新时间:2023-12-03 07:17:39 26 4
gpt4 key购买 nike

在 OSGi 下,组件与服务之间的主要区别是什么?据我了解,所有服务都必须是组件,但并非所有组件都必须是服务。

在示例用例中使用其中一种比另一种有什么好处?

最佳答案

“组件”的定义不如服务正式。

服务是在 OSGi 服务注册表中注册并可以使用其接口(interface)名称进行查找的任何对象。唯一的先决条件是服务应该实现某个接口(interface)……任何接口(interface)。例如,我可以在 java.lang.Runnable 接口(interface)下注册一个可运行对象,客户端可以使用该接口(interface)名称查找它。

“组件”往往是其生命周期受管理的对象,通常由声明性服务 (DS)、Blueprint 或 iPOJO 等组件框架进行管理。请参阅this page在 OSGi 社区 Wiki 上查看可用的不同组件框架的讨论。

组件可以组合或单独具有以下任何功能:

  • 组件可以启动停止;这将被视为“主动”组成部分,尽管这也是一个非正式术语。不需要启动或停止的组件称为被动组件。
  • 组件可以将自身作为 OSGi 服务发布
  • 组件可以绑定(bind)使用 OSGi 服务。

一般来说,使用组件框架是使用 OSGi 服务的最简单方法,因为该框架将管理与您想要使用的服务的绑定(bind)。例如,您可以说您的组件“依赖于”特定服务,在这种情况下,该组件仅在该服务可用时才会被创建和激活,并且当该服务不可用时它将被销毁。

关于osgi - OSGi 组件和服务之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com