为什么使用osgi?

问题描述 投票:16回答:4

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

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

java osgi
4个回答
16
投票

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

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


7
投票

恕我直言OSGI本身需要大量的锅炉板代码。但是,如果您使用像Karaf和iPOJO这样的库,大部分开销都是隐藏的,您将获得大部分好处。

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

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

2
投票

对我来说,OSGi最好的部分是它促进了面向服务的系统视图,这有助于解耦,测试和团队合作。

我不认为它必须复杂,因为我试图用我的“OSGi for mere凡人”示例应用程序[1]和幻灯片[2](两个无耻的插头;-)

[1] https://github.com/bdelacretaz/OSGi-for-mere-mortals

[2] http://www.slideshare.net/bdelacretaz/osgi-for-mere-mortals


1
投票

彻底通过这个tutorial。你可能得到你的答案。

© www.soinside.com 2019 - 2024. All rights reserved.