|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
跟着EJB3标准和撑持EJB3的JavaEE使用服务器的行将公布,全新JavaEE系统架构的新和平将拉开帷幕,在已往3年中热火朝天的Spring占有了JavaEE使用开辟基本平台的泰半江山,面临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轻量级容器
关于轻量级内核,不管失实是不是,当今的使用服务器都传播鼓吹接纳了微内核手艺,在此基本上创建JavaEE的各项服务构建成完美的使用服务器;而Spring自己就是一个基于IoC的轻量内核,然后经由过程集成第三方的服务器来供应完全的架构。
EJB组件已经被以为是一个分量级的组件,而备受品评,EJB3标准的主要方针就是简化EJB的开辟,供应一个容器办理的轻量级的组件计划。
可是有需要提示一下,轻量级的组件,其实不意味着供应服务的容器是轻量的,不论是EJB2仍是EJB3,使用服务器由于必要办理组件的卖力性命周期和举动,而且内置供应了各项服务,容器天然是一个分量级的服务;最少如今看来,现有的ApplicationServer供应的容器都还不敷够的轻量,从团体偏好来讲,我就十分喜好JBoss2.4这个版本,它有我必要的功效,同时又够复杂,而如今,JBoss4的启动速率已渐渐让我对它对得到了耐烦。
而关于Spring,也有一样的成绩,轻量级的内核,也不料味着全部框架是轻量的,更不料味着基于Spring的全部使用架构是轻量的。关于Spring,你必要往寻觅并粘合各类服务,然后让他们可以不乱的在一同事情,假如使用对手艺的需求较多,伸缩性请求也较高,你就会不休的在使用服务中到场其他服务,如:资本池、动静行列、集群等。当到场这些后,Spring的办理计划已和JavaEEApplicationServer办理计划一样分量级了。
寻求复杂、轻量,是每个使用架构的方针,关于企业使用的构建来讲,轻量级组件尺度+轻量的内核+轻量级的容器,并以此构建轻量级的使用平台,才是终极必要的。假如有轻量级的容器呈现,将匡助EJB3在企业使用中从头占有有益的位置。
3.可办理性与可控性
这个成绩关于一次性托付的项目大概不是成绩,可是关于质量请求更高、性命周期更长的产物,倒是权衡平台和架构的主要要素。
基于Spring架构的使用,因为太过的自在和天真,跟着项目标停顿,渐渐集成的第三方框架愈来愈多,很难包管集成的服务和编写的组件中有无毛病,乃至互相之间有严峻的抵触,那末,掌控全部项目标质量成了困难,光是一页接一页的设置文件,就晓得从此的保护成本也就随之增高,回忆一下EJB2.0时期的ejb-jar.xml吧;而EJB由于集成的都是尺度服务,并且组件模子也是流动的,加上使用服务器一样平常供应把持台,用来检察运转时的各项属性,并可对服务举行及时的办理,明显比Spring开辟的使用可控性更好。
4.功效性对照4.1IoC容器,AOP才能
在IoC的才能Spring要略强一些,可是在EJB3中能够完整用Annotation体例举行注进,在开辟上要复杂良多,关于一些绝对对照流动的注进,接纳Annotation更好,而关于一些大概必要常常变化的注进,XML加倍天真,EJB3恰好供应了如许的两种办理计划。假如你已得了XML害怕症,那末EJB3无疑将给您以摆脱。
同时,EJB3组件中,撑持多种体例注进,好比依附于称号、接口大概JNDI名,别的还撑持利用@PersistenceContext注进EntityManager,@Resource注进服务器资本,如EJBContext、TimerService等,而一些Annotation已成为JDK6的一部分,未来大概间接被JDK撑持。
AOP方面,假如您必要完全的AOP,而且在Spring中集成了AspectJ,那末EJB3天然没法比拟,可是假如您的项目以够用为准绳,只必要一样平常办法拦阻意义上的AOP,EJB3供应的各类回调办法应当能够满意您的请求了。
<p>
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|