快速业务通道

EJB3和Spring技术体系比较 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

EJB3和Spring技术体系比较

时间:2011-04-30 infoq 杨泳,Peter Cheng

随着EJB3规范以及支持EJB3的Java EE应用服务器的即将发布,全新Java EE体系架构的新 战争将拉开帷幕,在过去3年中如火如荼的Spring占据了Java EE应用开发基础平台的大半江 山,面对EJB3和Spring你应该如何选择呢?

作为一个架构师,我对EJB是既爱且恨,对Spring又恨又爱,现在我们来也把这两大技术 体系来做一个全面分析和对比,希望能给大家在进行技术选型时一个更好的参考。

1. 法制 VS “民主”

EJB规范一直由国际组织JCP来制定,一经通过,即作为官方标准,且各厂商都会不遗余力 的推动,所以对于企业应用来说,EJB就是法,以EJB为企业应用的基础架构暂且称为法治; Spring来自开源社区,由众多的开源软件开发者参与,逐步形成的一种流行的体系标准,它 的设计以IoC(反转控制)为核心,提倡所谓的“零”侵入设计原则,这里暂且称之为民主。

支持EJB的应用服务器一般是一个大而全的产品,包括了构建企业应用需要的方方面面, 如果需要额外扩展一般不容易,如果对一个应用服务器不满意的话,那么可以且也只能更换 整个应用服务器了,好在由于应用服务器市场百花齐放,从免费到低端再到高端,您可以任 意选择;Spring从IoC容器发展而来,通过不断集成AOP、MVC、OR/Mapping以及几乎您能想到 的各项服务而提供完善的企业应用架。对于一个应用,你可以自由选择具体的技术框架的实 现,SSH就是最常用一套组合,然而且不说是否每个架构师拥有正确选择的能力,无论如何, 最终的选择在设计之初一旦确定,要想更换便不那么容易,你不可能轻松的将一个基于 Spring + Struts的应用轻松的移植到Spring + WebWork,更不能轻松的将一个基于Spring + Hibernate的应用轻松的移植到Spring + iBatis,所以对于需要长期维护和发展的应用来说 ,将只能寄希望于你采用的框架都能够很好的发展,并且能在升级的同时保证向前的兼容性 。

综上所述,EJB由于对于整个世界是标准的,就好像是一部国际法,一旦遵循,全球通用 ,你可以比较轻松的在WebSphere、WebLogic甚至 JBoss之间进行切换,所以如果选择EJB, 你将在一个”法制”的环境下获得最大的民主;而Spring对于整个世界看似民主的,然而一 旦整套架构确定下来,却成了专制,犹如美国式的民主,一旦被它征服,就成为它的专政统 治了,想挣脱它的控制可就不那么容易了,其中的利害,大家细细品味吧。

2. 轻量级组件 VS 轻量级内核 VS 轻量级容器

关于轻量级内核,不论属实是否,现今的应用服务器都宣称采用了微内核技术,在此基础 上建立Java EE的各项服务构建成完善的应用服务器;而Spring本身就是一个基于IoC的轻量 内核,然后通过集成第三方的服务器来提供完整的架构。

EJB组件曾经被认为是一个重量级的组件,而备受批评,EJB3规范的重要目标就是简化EJB 的开发,提供一个容器管理的轻量级的组件方案。

但是有必要提醒一下,轻量级的组件,并不意味着提供服务的容器是轻量的,不管是EJB2 还是EJB3,应用服务器因为需要管理组件的负责生命周期以及行为,并且内置提供了各项服 务,容器自然是一个重量级的服务;至少现在看来,现有的Application Server提供的容器 都还不足够的轻量,从个人偏好来说,我就非常喜欢JBoss 2.4这个版本,它有我需要的功能 ,同时又够简单,而现在,JBoss 4的启动速度已经逐渐让我对它对失去了耐心。

而对于Spring,也有同样的问题,轻量级的内核,也不意味着整个框架是轻量的,更不意 味着基于Spring的整个应用架构是轻量的。对于 Spring,你需要去寻找并粘合各种服务,然 后让他们能够稳定的在一起工作,如果应用对技术的需求较多,伸缩性要求也较高

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号