当前位置: 首页 > 知识库问答 >
问题:

OSGi和Java服务提供者接口之间有什么区别?

丁德义
2023-03-14

OSGi和JavaSPI有什么区别?利弊是什么?

共有1个答案

夹谷沛
2023-03-14

JavaSPI主要用于提供Java标准的实现。这种方法在服务的客户端和提供者之间提供了一些解耦。实现类在META-INF/service中定义。这是一个非常简单的模型。一个实现不能注入其他服务,也没有配置模型。因此,这主要适用于没有其他依赖关系的低级服务。

OSGi还支持客户端和服务提供商的解耦。它还允许配置和动态注册服务。此外,还有几种编程模型,如声明性服务和CDI,它们可以互操作。

OSGi的缺点是,它要求所有库都生活在一个模块化的类加载器中,并处理JAR(bundle)的动态加载和卸载。由于并非所有的库都是这样构建的,所以在OSGi中实际运行良好的java库有限。

 类似资料:
  • 问题内容: 我无法理解以下文本…这是否意味着空的构造函数?为什么拥有两个不同的版本很重要? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 在Java虚拟机级别,每个构造函数(第2.12节)都作为具有特殊名称的实例初始化方法出现。该名称由编译器提供。因为该名称不是有效的标识符,所以不能直接用Java编程语言编写的程序中使

  • 问题内容: 我不清楚两者之间的区别。 谢谢 问题答案: 它们非常相似,但是存在一些重要的技术差异: 抽象类允许您为某些方法提供默认的实现,但是接口不允许您提供任何实现。 您可以实现多个接口,但只能从一个抽象类继承。 这些差异影响应使用两种技术的方式: 您应该使用接口来 定义合同 。 抽象类对于 重用代码 很有 用 ……但是请注意,它不是重用代码的唯一方法。您还应该考虑其他方法,例如遏制。

  • 文档中说,它们都监听Firebase数据库位置的更改。

  • 问题内容: 是什么区别,和服务?对我来说,他们都做同样的事情:获取模板并将其编译为模板功能。 问题答案: 这些都是服务的所有例子,援助在AngularJS视图呈现(虽然并 可以使用该结构域之外)。为了说明每个服务的作用,让我们以这段HTML为例: 和范围上的值: 鉴于此标记,这里是每个服务带到表中的内容: -它可以使用整个标记并将其转换为链接功能,当在特定范围内执行该链接功能时,会将一段HTML文

  • 我正在浏览微软的Rust教程,它是关于 实现函数,以便返回对插入向量中的值的引用 这里给出了解决方案,但它与我的不同之处在于它使用了 除了返回类型之外,我的和标准解决方案之间的另一个区别是,我只是简单地返回了参数,而标准解决方案使用复杂方式)。 我想知道我的解决方案是否有任何问题,本教程采取了另一种方式? 虽然@Masklin为我的问题提供了一个很好的答案,但它有点特定于我给出的示例,但没有直接解

  • 问题内容: 我试图破译以下功能: 我从http://blog.danlew.net/2014/09/15/grokking-rxjava- part-1/ 获得了一个很好的rxjava简介,但是它只是顺便提到了Observer,说您将在大多数情况下使用Subscriber从Observable发射到消费项目的时间。 有人可以向我解释 什么是观察者? 观察者与订户有何不同? 上面的代码段是做什么的?