阅读更多

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

 

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 )。

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

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

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

发表评论

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

相关推荐

  • 从职位中预测2008年Java框架之争

    供职信息已超过 EJB,JavaEE 继续 without EJB 》一文中, EJB 基本上处于停滞下滑状态, 15% 的比例都是遗留项目的维护需要。而 EJB3 只有 177 个职业,看来 Sun 以及 JavaEE 商家大肆吹棒的东西,开发人员并不会...

  • Java 老矣,尚能饭否?

    在此之前,EJB2.X 版本被广泛质疑,SpringFramework 创建者 Rod Johnson 在经典书籍“J2EE Development without EJB“中,对 EJB2 代表的分布式对象的设计方法予以批驳。EJB3 则重新经过改造,使用注解方式,经过...

  • 回顾java

    在此之前,EJB2.X 版本被广泛质疑,SpringFramework 创建者 Rod Johnson 在经典书籍“J2EE Development without EJB“中,对 EJB2 代表的分布式对象的设计方法予以批驳。EJB3 则重新经过改造,使用注解方式,经过...

  • 基于纯verilogFPGA的双线性差值视频缩放 功能:利用双线性差值算法,pc端HDMI输入视频缩小或放大,然后再通过HDMI输出显示,可以任意缩放 缩放模块仅含有ddr ip,手写了 ram,f

    基于纯verilogFPGA的双线性差值视频缩放 功能:利用双线性差值算法,pc端HDMI输入视频缩小或放大,然后再通过HDMI输出显示,可以任意缩放。 缩放模块仅含有ddr ip,手写了 ram,fifo 代码,可以较为轻松地移植到其他平台。 硬件平台:易灵思 ti60f225 EDA平台:efinity

  • 【java毕业设计】智慧社区智慧社区管理员密码修改与重置系统(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 基于51单片机的一个智能密码锁设计.7z

    基于51单片机的一个智能密码锁设计.7z

  • 《STM32单片机+2x180-SG90+2x360-SG90+OLED屏幕》源代码

    《基于STM32的舵机控制系统设计》毕业设计项目 1.STM32单片机+2x180_SG90+2x360_SG90+OLED屏幕 2.OLED屏幕显示舵机的方向、速度、角度各项数据 3.按键1:控制180度舵机正向转动角度      4.按键2:控制180度舵机反向转动角度 5.按键3:控制360度舵机正向转动并且控制舵机速度      6.按键4:控制360度舵机反向转动并且控制舵机速度 7.代码里面含有注释 8.硬件实物接上线就能直接运行

  • pyside6-qml-modern-uiapp

    Pyside6+Qml+QtCreator做的桌面app

  • 基于深度堆叠卷积神经网络的图像融合详细文档+全部资料+优秀项目+源码.zip

    【资源说明】 基于深度堆叠卷积神经网络的图像融合详细文档+全部资料+优秀项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 基于卷积神经网络的语音识别声学模型的研究详细文档+全部资料+优秀项目+源码.zip

    【资源说明】 基于卷积神经网络的语音识别声学模型的研究详细文档+全部资料+优秀项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • IndexOutOfBoundsException(解决方案).md

    IndexOutOfBoundsException(解决方案)

  • Mini-Imagenet数据集文件

    Mini-Imagenet数据集文件

  • 时间转换工具(BD时、GPS时、UTC时、北京时间相互转换,可计算日期)

    时间转换工具(BD时、GPS时、UTC时、北京时间相互转换,可计算日期)

  • 基于CNN神经网络实现的正方教务系统的验证码识别资料齐全+高分项目+文档+源码.zip

    【资源说明】 基于CNN神经网络实现的正方教务系统的验证码识别资料齐全+高分项目+文档+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 西北工业大学 人工智能程序设计 Python NOJ程序源代码.zip

    西北工业大学 人工智能程序设计 Python NOJ程序源代码.zip

  • 车辆、飞机、船检测12-YOLO(v5至v11)、COCO、CreateML、TFRecord、VOC数据集合集.rar

    车辆、飞机、船检测12-YOLO(v5至v11)、COCO、CreateML、TFRecord、VOC数据集合集.rar对象检测分配-V2 2024-03-10 7:04 pm ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括2992张图像。 以可可格式注释船舶飞机。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 没有应用图像增强技术。

  • 基于SpringBoot2/3+Sa-Token+Mybatis-Plus和Vue3+Ant Design Vue+Uni-App+Uni-UI,并以高质量代码为核心,简洁、高效、安全的快速开发平台

    SmartAdmin以「高质量代码」为核心,「简洁、高效、安全」的快速开发平台;基于SpringBoot2/3+Sa-Token+Mybatis-Plus和Vue3 +Ant Design Vue+UniApp (提供JavaScript和TypeScript双版本、Java8和java17双版本);满足三级等保、网络安全、数据安全等功能要求。并重磅开源千余家企业在使用的《高质量代码规范》等

  • 计算机语言学中并查集数据结构的C++实现

    欢迎下载

  • jsp基于WEB操作系统课程教学网站的设计与实现(源代码+论文)(2024i6).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

Global site tag (gtag.js) - Google Analytics