我想知道为什么在构建java应用程序时使用OSGI框架。我在网上搜索这个,但答案看起来很复杂。任何人都可以解释为什么我们需要采用osgi。
很抱歉,如果问题不适合stackoverflow我很感激读者的耐心。谢谢。
OSGi提供了一个模块化系统,其中包含模块的版本控制,以及一些生命周期管理。它管理模块之间的依赖关系,模块的动态/延迟启动/卸载,查找/发现等。
部分内容将成为java语言的一部分。它比类型的意大利面布线更复杂。
恕我直言OSGI本身需要大量的锅炉板代码。但是,如果您使用像Karaf和iPOJO这样的库,大部分开销都是隐藏的,您将获得大部分好处。
主要好处是能够控制使用哪些版本和适当的模块隔离。例如,你可以
对我来说,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
彻底通过这个tutorial。你可能得到你的答案。