java - 在哪些领域使用 OSGI 有意义?

标签 java osgi artificial-intelligence platform

我正在尝试了解 OSGI。它似乎是为创建智能系统而设计的,例如智能家居、物联网等。 OSGI 还有其他用例吗? OSGI 对于分析平台或 AI 系统有意义吗? 抱歉,我的问题实在是太天真了。

最佳答案

对我来说,OSGi 最重要的功能是能够在运行时插入/拔出代码模块而不停止 JVM,因此其他模块(除非依赖于插入/拔出的模块)继续运行。

例如,Liferay Portal (7.0+) 是基于 OSGi 构建的,因为它需要在运行时添加/删除功能和应用程序,而不中断门户本身。 相反,如果您需要向 Spring 应用程序添加库(甚至是 SPI),您至少必须停止它,在 pom 中添加依赖项,然后再次编译并运行。

使用 OSGi 还有其他优点(模块化和封装是关键点),但在我看来,这是主要优点,而且我不知道有任何其他 java 技术可以做到这一点。

无论如何,最好知道 OSGi 并不是小菜一碟。这些优点的缺点是学习曲线陡峭并且需要大量的试错。 因此,在我看来,OSGi 的使用应该仔细评估,综合考虑。

关于java - 在哪些领域使用 OSGI 有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022498/

相关文章:

java - 如何只实现抽象类的某些方法?

java - 所有可能的路径

python - 任何允许在线学习的 python 支持向量机库?

java - Selenium geckodriver 无法找到匹配的功能集

java - 正确更新 Swing 组件

java - 在我的 portlet 中添加 postgres jdbc 后,我的 portlet 无法启动

java - osgi:使用服务工厂?

java - 当尝试读取 XML 时,Bundle 对不同的 Bundle 产生了无法解释的要求

java - 我的 Tic Tac Toe AI 有什么问题?

java - Stream.reduce 的累加器参数中通配符的目的是什么?