我正在尝试了解OSGI。看来它是为创建像智能家居,物联网之类的智能系统而设计的。 OSGI还有其他用例吗? OSGI对于分析平台或AI系统有意义吗? 抱歉,我的问题真的很幼稚。
答案 0 :(得分:3)
对我来说,OSGi最重要的功能是能够在运行时插入/拔出代码模块而无需停止JVM,因此其他模块(除非依赖于插入/拔出的模块)可以继续运行。
例如,Liferay Portal(7.0+)是基于OSGi构建的,因为它需要在运行时添加/删除功能和应用程序而不会中断门户本身。 相反,如果需要向Spring应用程序添加库(甚至是SPI),则至少必须停止它,将依赖项添加到pom中,然后编译并再次运行。
使用OSGi还有其他优势(模块化和封装是关键点),但我认为这是主要优势,我不知道有其他Java技术可以做到这一点。
无论如何,最好知道OSGi不是小菜一碟。这些优点在陡峭的学习曲线和大量的反复试验中都有缺点。 因此,我认为应该对OSGi的使用进行仔细评估,并考虑到所有因素。