为什么使用osgi?

jav*_*ner 16 java osgi

我想知道为什么OSGI框架用于构建java应用程序.我在网上搜索这个,但答案看起来很复杂.任何人都可以解释为什么我们需要采用osgi.

很抱歉,如果问题不适合stackoverflow我很感激读者的耐心.谢谢.

Joo*_*gen 16

OSGi提供了一个模块化系统,其中包含模块的版本控制,以及一些生命周期管理.这管理模块之间的依赖关系,模块的动态/延迟启动/卸载,查找/发现等.

部分内容将成为java语言的一部分.它比类型的意大利面布线更复杂.


Pet*_*rey 8

IMHO OSGI本身需要大量的锅炉板代码才能实现它的功能.但是,如果您使用像Karaf和iPOJO这样的库,大部分开销都是隐藏的,您将获得大部分好处.

主要好处是能够控制使用哪些版本和适当的模块隔离.例如,你可以

  • 让容器从像nexus这样的maven存储库下载正确的版本.
  • 使用同一个库的多个版本,并使用那些需要使用正确库的模块.
  • 在应用程序运行时停止,升级和启动模块.
  • 一个Web控制台,可以查看所有模块的状态并集中或单独管理它们.