我正在尝试了解 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/