我想知道为什么在构建java应用程序时使用OSGI框架。我在网上搜索这个,但答案看起来很复杂。任何人都可以解释为什么我们需要采用osgi。
很抱歉,如果问题不适合stackoverflow 我很感激读者的耐心。感谢。
答案 0 :(得分:16)
OSGi提供了一个模块化系统,其中包含模块的版本控制,以及一些生命周期管理。它管理模块之间的依赖关系,模块的动态/延迟启动/卸载,查找/发现等。
部分内容将成为java语言的一部分。它比类型的意大利面布线更复杂。
答案 1 :(得分:7)
IMHO OSGI本身需要大量的锅炉板代码。但是,如果您使用像Karaf& amp; iPOJO隐藏了大部分开销,您将获得大部分收益。
主要好处是能够控制使用哪些版本以及正确的模块隔离。例如,你可以
答案 2 :(得分:2)
对我而言,OSGi的最佳部分是它促进了面向服务的系统视图,这有助于解耦,测试和团队合作。
我不认为它必须是复杂的,因为我试图用我的" OSGi为凡人演示"示例应用[1]和幻灯片[2](两个无耻的插头; - )
[1] https://github.com/bdelacretaz/OSGi-for-mere-mortals
[2] http://www.slideshare.net/bdelacretaz/osgi-for-mere-mortals
答案 3 :(得分:1)
彻底完成此tutorial。你可能会得到答案。
答案 4 :(得分:0)
OSGi是一个快速框架,因为它借助于预定义的xml 文件,知道将哪个服务加载到OSGi环境中。由于懒惰状态,它降低了运行时成本。服务实例在需要时创建。某个捆绑软件的不同版本可以被其他捆绑软件同时使用。由于每个插件都具有自己的类加载器,因此可以停止,启动,安装或卸载任何捆绑软件,而无需停止 Java虚拟机。通过界面在OSGi环境中使用声明式服务或服务跟踪器。使用界面经常为可重用代码铺平道路。尽管OSGi框架包含许多类和接口,但是可以使用它来创建功能强大的项目。由于Java随处可见,因此OSGi也可以也可以运行。