四大框架对比

上传人:j****9 文档编号:47023566 上传时间:2018-06-29 格式:DOC 页数:2 大小:16.74KB
返回 下载 相关 举报
四大框架对比_第1页
第1页 / 共2页
四大框架对比_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《四大框架对比》由会员分享,可在线阅读,更多相关《四大框架对比(2页珍藏版)》请在金锄头文库上搜索。

1、OSGi 正在成为一种趋势,越来越多的项目采用了 OSGi,越来越多的中间件都开始采取了 OSGi 的标准。身为一名 Java 开发人员,如果你还对 OSGi 结构一无所知,那你真的有点 Out 了。什么是什么是 OSGiOSGi 的名称来源于其开源组织的名称 Open Services Gateway initiative,OSGi 是一个标准,它致力于提供给 Java 项目一个模块化的底层环境,以及一系列通用的服务(Service)。和普通的 JVM程序相比,OSGi 的程序天生拥有动态模块的特点,不同的模块(OSGi 里称之为 Bundle)有着独立的生命周期,可以独立进行安装、启动、停

2、止、卸载的操作,模块间的依赖性管理也由 OSGi 提供。你可以看出,OSGi 非常适合需要进行 Plugin 管理的项目,一个典型的成功案例就是 Eclipse 和它众多的 Plugin。OSGi 标准还规范了一系列我们常间的操作,日志、配置文件、事件队列、Web 开发、JPA&JDBC 等等,大部分部署 OSGi 标准的框架都提供了这些服务,这样一方面规范了我们代码的结构,一方面节约了我们开发的时间。目前基于 OSGi 的框架大概有 4 个:Knopflerfish, Apache Felix, Equinox, Spring DM。因为都是基于 OSGi 标准的,他们的大致用法和核心功能是

3、一致的。一般来说一个 OSGi 的组件(Bundle)可以轻易的从一个框架迁移到另一个框架。框架的不同主要是体现在他们本身的设计和额外的服务上。根据我的一些经验,对这 4 个框架进行了一下比较,希望对刚接触 OSGi 或是由于如何选择 OSGi 框架的人有所帮助。Apache Felix 最全面的框架最全面的框架Apache Felix 是 Apache 旗下的一个 OSGi 框架,项目本身非常成熟,已经被用到了很多其他的项目中,例如 Apache Servicemix。它本身提供的服务也是最全的,几乎涵盖了全部的 OSGi 4.2 的标准。除此之外还提供了一些非标准的功能,例如 iPOJO。

4、框架本身非常紧凑,你只需要 3 个包加一个 shell 就可以运行了,无论是开发还是 Debug 都非常简便。除了 Felix,还有两个项目是和 OSGi 相关的。一个是 Apache Felix Karaf,它本身是 Felix 的一个子项目,但他其实是封装了 Felix 提供更高一层的Runtime,例如提供了 JAAS。另一个是 Apache Aries,目前还处于起步阶段,它作为 Felix 的补充,提供 OSGi 企业级规范,包括 JPA、JDBC、JTA、JNDI 等等。总的来说,Apache Felix 是我个人推荐的最佳 OSGi 框架,它简单的结构也更适合出学 OSGi 的开

5、发人员。Equinox 与与 Eclipse 完美结合完美结合Equinox 是 Eclipse 旗下的 OSGi 框架,本身也被 Eclipse 采用,是 Eclipse 注明的 PDE 开发环境的底层。Equinox 本身也是相当的全面的框架,提供的功能不比 Felix 少多少。但是它功能的分类就稍显混乱,文档和 Sample 也组织的不是很好。事实上相当 Equinox 还是被当做开发 Eclipse Plugin 的应用较多,如果你要开发一个 Web 程序,你就会感到它本身的功能和文档不够全面。Equinox 最大的优势在于它和 Eclipse 结合紧密,只要你安装了 PDE,你就已经

6、有了 Equinox,可以方便的在 Eclipse 里设置你开发的 Bundle,启动、部署等操作也异常简单,而且有专门的 Debug 界面,你还能要求什么呢?如果你想基于 Eclipse 开发,Equinox 无疑是好选择。但对于新手而言,有时候会搞混 Eclipse Plugin 与 OSGi 的关系。Spring DM 畸形的需求产物畸形的需求产物Spring DM 是 Spring 旗下的 OSGi 框架,Spring 我想大家都知道了,Spring DM 的最大特点就是结合了 Spring 框架。我之所以说特点还不是优势,是因为我认为这个需求本身就是错误的。Spring和核心就是一个

7、 IoC,当然后来它的外延扩大了,提供了越来越多乱七八糟的功能。OSGi 规范本身就制定了一系列 IoC 的功能标准,尤其是其中的 BluePrint 其实相当多的借鉴了 Spring,因此完全没有必要再引入 Spring 充当新的 IoC 了。Spring 本身无论是 ClassLoader 还是配置文件上都与 OSGi 格格不入,之所以有这种需求是因为现在有大量基于 Spring 的项目想要过渡到 OSGi 上。Spring 还发布了一个App Server 叫 Spring DM Server,是一个基于 Spring DM 的 App Server,你会发现你需要加载80+的包来完成一

8、个 hello world 操作,这种恐怖的依赖性正是 Spring 所带来的。意识到这个问题的显然不只是我一个人,传闻 Spring DM 和 Spring DM Server 都将会移交给 Eclipse。就目前来说除非你有基于 Spring 项目的移植需求,我不推荐其他任何情况下使用 Spring DM。Knopflerfish 孤独孤傲孤独孤傲Knopflerfish 其实是 OSGi 的先行者,但是由于没有强力的靠山,再后来的竞争中显然不如前三者有人气。它本身是一个相当标准 OSGi 框架,提供了绝大多数标准功能,但是无论在人气上,开发进度上,文档完善上都不如其他的三者。既生瑜,何生亮阿

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号