gpt4 book ai didi

java - 为什么要在 OSGi 中创建和使用服务

转载 作者:行者123 更新时间:2023-12-01 06:39:02 39 4
gpt4 key购买 nike

过去一周我一直在研究 OSGi,但唯一的原因似乎并不合适,那就是为什么我需要在可以的情况下注册和使用任何 bundle只需导入其 JAR 文件即可完成此操作。这样做我能获得什么好处?是的,我确实得到了依赖管理,但是:

我可以通过导入未注册为 services 本身的任何其他 JAR 文件来使用它们吗?如果是,我为什么要承担使用 OSGi 的开销?

最佳答案

OSGi 的整体理念是获得模块化:关注点和功能清晰分离,并可以在需要时使用不同版本或实现来替换或更新功能。

通过导入 jar,您可以实例化在其他 jar 中声明的类,但不能用其他实现或版本替换它(运行时!)。 OSGi 服务的想法是,您定义一个 Java 接口(interface),并通过在 OSGi 服务注册表中查找其实现来从客户端使用该接口(interface),而客户端实际上并不知道该接口(interface)的实现。这使得可以在运行时用另一个版本甚至完全不同的解决方案替换实现,而无需客户端担心。通过实例化另一个 jar 中的类是不可能的。

当然,如果你不需要这个,你可能会认为 OSGi 只是一个很大的开销。您可能是对的,具体取决于您的情况。我发现遵循 OSGi 的结构可以让您更好地了解应用程序的组件和整体架构之间的关系。从维护角度来看,这是一个巨大的好处。

关于java - 为什么要在 OSGi 中创建和使用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20323063/

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