您的位置: 新闻频道 八卦新闻

原创新闻 Rod Johnson:Spring供职信息已超过EJB,JavaEE 继续 without EJB

2008-02-12 by 主编 JavaEye管理员
评论(20) 有3305人浏览 rod johnson, spring, ejb, 职位

供职信息的确是一个反映技术流行的风向标。它们反映公司是否会花钱来从各种大肆宣传的技术中找到想要的实质,它们反映了开发人员收入的增益以及对相关技术的掌握程度(对技术来说永远是一个重要元素),并且也为公司采纳某种市面上流行的技术栓上了保险。

 

Indeed.com是全球供职信息中的一个大站点,因此它的职位流利趋势图成为了一个非常重要的信息资源。它可以将过去发布过的职位数汇总,方便进行比较。

 

 有时候,技术的流行趋势往往充满戏剧性。在下图中,我们看到了到200711月之止,在Java职位列表中,Spring作为求职要求技能已经超过了EJB,到我昨天统计分别是:Spring 5710个职位,EJB 5030个职位。 通过工作总数的比较,我们可以看见两者走势的交叉点: 

 

 

 

通过EJB走势来看,假设EJB职位大多数都是为了解决遗留EJB的话,那么几乎没有新项目用EJB了。 再来看一幅关于比较两者的各自增长的图表显得更有意义,两者形成鲜明的对比: 

 

spring

 

很明了,市场EJB的需求在停滞或减少,而Spring在不断的增长。当然SpringEJB并不是互斥的。使用Spring后并不会阻止你再去使用EJB,反之亦然。在你的Spring项目中,然后有许多EJB的服务是非常有用的。但光使用EJB而不使用Spring的话,就意味着放弃了众多有价值东西。的确,已经有EJB专家宣称两种技术本身就是直接的竞争关系。 SpringEJB的融合是有意义而且也确实在增长,但相对于单单Spring本身,增长还是缓慢: 

 

 

 

 

这并不是一个随随便便的比较,考虑SpringEJB其中任何一个作为企业级Java应用程序开发的核心组件是合理的。此时此刻,谁更处于上风也是显而易见的。

 

在某种程度上,必须承认这满足了我个人的虚荣心,因为早在2003年我就预言EJB将死,并且大声嚷到EJB正在被过度的滥用。在《J2EE without EJB》一书中,我就分析了EJB模型的不足,以及它是如何达不到开发人员和客户的预期目标或需求。那个时候,我的这些言论颇据争议。EJB3.0稍微有点改观,但也改变的太少并且太晚了。注入依赖功能与实现需求相比还是太弱了;Interception API被认为有必要解决横切问题(AOP),可EJB却弄了个功能最少,最笨重还容易发现错误的解决方案;还要考虑与毫不相关的先前EJB版本兼容问题;完整的EJB合同还是有好几百页,复杂的运行以及高昂的花销,与其所谓的“简单编程模型”形成强烈对比;尽管有新的语法糖,但还有很多地方设计不足,比如:actions的启动,singletons与陈旧的线程模型(threading model);最后,还是与某一特定的应用服务器绑定在一起,“一次编写,到处调试”。 

 

我本可以继续抨击这些缺点,但这些职位数替我表明了许许多多公司真正所要想的技术经验以及会招收什么样人的结论。 

 

现在我想稍微谈谈sessionmessage beanJPAEJB中分离了出来的规范,采用了现今主流技术,证明了它存在的价值。 

 

对于个别的开发人员来说,EJB的过气意味着什么?

 

  • 实际上大量优秀的技术都是导致EJB过气的原因。到今天已经很难强加人们去用一个未被证明可以解决实际问题方案来开发J2EE了,这确实是一件好事。
  • 也不要盲目的拒绝所有的标准。正如我一直强调:JavaEE包括EJB,任何关于于该平台的人都应该从总体上中肯的看待它。
  • 有了更好的技术,业务对象成为了POJO,依赖于特定规范的组件模型将会减少并且也越来越不重要。
  • 放弃EJB,架构将更加灵活,当需求改变时通过当今崛起的SOA或其它热门技术来解决。而且现在乐意采用轻量级布署平台的公司也越来越多。尽管如此,支持EJB3.0的成熟应用服务器还是很多的(包括Spring2.5在内,内置了EJB3.0注入依赖模型。还和BEA共同开发了Pitchfork,专门为WebLogic10’s EJB3.0所实现的)。 

 

坦率的说,EJB是失败的。EJB在过去的10年无法解决问题;现在它,乃至将来仍然有很多不合理的地方。很多当时EJB的种种美好假设到如今都是不可信的。EJB的规范坚持主张向后兼容是没有道理的,它的衰亡是完全符合因果关系的,当我们正朝向一个崭新,更加灵活的世界,OSGi以及所谓“初级的”Servlet API提供的却是更加有益的。当然,使用EJB的绝对总数还是很多,因此EJB并不会很快完全的消亡。但走势图已经摆明了它注定要成为历史。

 

Spring职位信息超过EJB发生在我们宣布SpringSourceSpring认证之前。如今,Spring已经作为求职技能中炙手可热的重要技能,因此对于雇主与开发人员来说,权威的衡量开发人员的Spring水平是十分重要的。 

为了更进一步证明Spring势不可挡,我们统计了一些2007年主要的Java站点数据。其中,在ServerSide里,前5名中有2个是关于Spring的,并且排在No.1的是“Introduction to the Spring Framework”。(注:还有一篇是Introduction to the Spring Framework 2.5 )。


来自:superleo.javaeye.com

评论 共 20 条 发表评论

haley_yin 2008-02-22 16:56
这样啊?!
chancep2 2008-02-22 10:12
任何技术发展都是因需求而变的,说不定过一段时间情况会反转,新技术也有更有可能出现.
yang52081 2008-02-21 13:57
本人喜欢用Spring框架,但在Spring事务上还不太会用
zhuxinyan0824 2008-02-19 10:53
spring 框架在解耦合方面做的很好,缩短了开发周期和维护的难度。比较喜欢spring.
abcx 2008-02-18 10:01
Sun可能也想把EJB容器扔掉,或者统一Servlet 容器和EJB容器,但Java EE也不是Sun说了算。很明了的事情,有些厂商就希望把简单的事情复杂化。Rod这几年混的不错,说话口气也变粗了。
pacificshark 2008-02-16 22:30
好希望有高手来加盟,给我发消息
pacificshark 2008-02-16 22:29
我们公司就在使用JSF+Seam+EJB3,但招人实在是太难了。
wangjian5748 2008-02-14 18:03
...完整的EJB合同还是有好几百页,复杂的运行以及高昂的花销...不懂什么是"EJB合同",是不是翻译错了("EJB规范")
flashing 2008-02-14 13:12
seam?用的着火箭打苍蝇吗。。。不过我的确也在关注seam,我想会有一个合适的地方使用它的。

至于ray_linn说:
王婆卖瓜~~~Spring丑陋的地方也不少:比如对相关framework版本的要求导致无法及时跟上framework的update,比如丑陋的OpenSessionInView.

第一个问题我想spring有依赖吧,自己就有依赖库,很清楚的摆在里面,搞不明白完全是自己的事情了。。。总比我blog里面写maven的那种情况还是要好写。
第二个问题,OpenSessionInView是hibernate的问题,和spring有什么关系了?况且OpenSessionInView就是一个filter而已,何言丑陋?
fangzhouxing 2008-02-14 08:36
新项目应该用seam。
bottom 2008-02-14 00:38
OpenSessionInView is a compromise to Hibernate's session design. Can't blame on Spring.
mimimi 2008-02-13 23:10
Pojo Bean容器怎麽能vs EJB容器,吹,继续吹。
ray_linn 2008-02-13 23:07
王婆卖瓜~~~Spring丑陋的地方也不少:比如对相关framework版本的要求导致无法及时跟上framework的update,比如丑陋的OpenSessionInView.
sunwei_07 2008-02-13 09:01
接触JAVA比较晚,EJB都没有接触过,使用过spring,真的觉得不错
Godlikeme 2008-02-12 23:22
坦率的讲,EJB以前解决不了的,在很久的将来,还不知道能不能解决。
jejwe 2008-02-12 23:00
作者没变JavaEye管理员,这些都是文摘啊,所以未尾有
来自:superleo.javaeye.com
kyo100900 2008-02-12 22:33
8) 这不是我博客上的新闻吗? 怎么作者变成 “JavaEye管理员” 了??!!!!
neusun 2008-02-12 21:52
to ssuupv
是啊?哪些公司?一直比较关注seam~
ssuupv 2008-02-12 20:42
好多公司在试用seam
ssuupv 2008-02-12 20:42
现在公司改用EJB3.0也是相当多的

发表评论

您还没有登录,请登录后发表评论