阅读更多

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

 

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 则重新经过改造,使用注解方式,经过...

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

  • 张彩明-图形学简明教程 配书资源

    张彩明-图形学简明教程 PPT课件

  • 计算机术语.pdf

    计算机术语.pdf

  • 基于改进粒子群算法的微电网多目标优化调度模型与算法分析

    内容概要:本文详细介绍了利用改进粒子群算法(IPSO)进行微电网多目标优化调度的方法和技术。首先指出了传统粒子群算法(PSO)存在的局限性,如初始化随机性和易陷入局部最优等问题。接着提出了多种改进措施,包括混沌映射初始化、动态权重调整、自适应变异以及引入帕累托前沿机制等。文中通过具体的代码实例展示了这些改进的具体实现,并通过实验验证了改进后的算法在处理微电网优化调度问题时的有效性,尤其是在应对风光发电不确定性方面表现突出。此外,文章还讨论了实际应用场景中的约束处理方法,如功率平衡约束的修复策略,确保理论与实践相结合。 适合人群:对智能优化算法及其在电力系统特别是微电网中的应用感兴趣的科研人员、工程师及研究生。 使用场景及目标:适用于需要对微电网进行多目标优化调度的研究和工程项目,旨在提高微电网运行效率,降低成本并减少环境污染。通过学习本文提供的改进算法和技术手段,能够更好地理解和掌握如何针对特定业务场景定制化地改进经典优化算法。 其他说明:文章不仅提供了详细的理论分析和算法改进思路,还包括了大量的代码片段和实验结果,有助于读者深入理解并快速应用于实际项目中。

  • S7-1200 PLC与组态王实现7车位3x3立体车库控制系统

    内容概要:本文详细介绍了基于西门子S7-1200 PLC和组态王的7车位3x3升降横移立体车库控制系统的设计与实现。主要内容涵盖IO分配、梯形图程序、接线图、组态画面设计以及安全防护逻辑等方面。文中强调了硬件互锁、软件互锁、模块化编程、精确控制和平移控制等关键技术点,并分享了一些调试经验和注意事项。此外,还讨论了光电传感器误触发、急停按钮处理、故障记录等实际应用中的挑战及其解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉PLC编程和组态软件使用的专业人员。 使用场景及目标:适用于需要设计和实施立体车库控制系统的工程项目。目标是帮助读者掌握S7-1200 PLC与组态王的具体应用方法,提高系统可靠性和安全性。 其他说明:文中提供了详细的代码片段和配置示例,有助于读者更好地理解和实践相关技术。同时,作者分享了许多宝贵的实战经验,对于初学者和有一定经验的技术人员都非常有价值。

  • 数据结构解析:线性表顺序表示的原理、操作及应用

    内容概要:本文详细介绍了线性表及其顺序表示的概念、原理和操作。线性表作为一种基础数据结构,通过顺序表示将元素按顺序存储在连续的内存空间中。文中解释了顺序表示的定义与原理,探讨了顺序表与数组的关系,并详细描述了顺序表的基本操作,包括初始化、插入、删除和查找。此外,文章分析了顺序表的优点和局限性,并讨论了其在数据库索引、图像处理和嵌入式系统中的实际应用。最后,对比了顺序表和链表的性能特点,帮助读者根据具体需求选择合适的数据结构。 适合人群:计算机科学专业的学生、软件开发人员以及对数据结构感兴趣的自学者。 使用场景及目标:①理解线性表顺序表示的原理和实现;②掌握顺序表的基本操作及其时间复杂度;③了解顺序表在实际应用中的优势和局限性;④学会根据应用场景选择合适的数据结构。 其他说明:本文不仅提供了理论知识,还附带了具体的代码实现,有助于读者更好地理解和实践线性表的相关概念和技术。

  • 计算机数学1 -5 重言式与蕴含式.pdf

    计算机数学1 -5 重言式与蕴含式.pdf

  • 风电永磁直驱发电并网系统的控制策略与仿真建模

    内容概要:本文详细介绍了风电永磁直驱发电并网系统的构成及其关键控制部分。首先探讨了真实的风速模型构建方法,利用MATLAB生成带有随机扰动和突风成分的风速曲线,用于模拟自然界的风况。接着深入解析了永磁电机的转速控制机制,特别是最大功率点跟踪(MPPT)算法的具体实现方式,以及如何通过PI控制器调节电磁转矩。随后讨论了并网过程中LCL滤波器的设计要点,确保谐波失真小于3%的同时保持系统稳定性。此外,还涉及到了网侧变流器的锁相环(PLL)设计,增强了其在电网电压跌落情况下的快速跟踪能力。最后讲述了整套系统联调时遇到的问题及解决方案,如协同惯量控制策略应对电网扰动等。 适合人群:从事风力发电研究的技术人员、高校相关专业师生、对新能源发电感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解永磁直驱风力发电系统的工作原理和技术细节的人群。目标是掌握从风速建模到最终并网控制的完整流程,能够独立进行系统仿真和优化。 其他说明:文中提供了大量具体的代码示例,涵盖MATLAB、Python、C等多种编程语言,有助于读者更好地理解和实践所介绍的内容。

  • 《基于yolov8的昆虫检测识别检测项目》(包含源码、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,包含核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、数据集、部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.dataset.txt文件,仅供学习参考, 切勿用于商业用途。

  • 辞郁报表设计器(2025-03-30)

    本程序使用于:思迅软件、科脉软件、百威软件、泰格软件、嬴通软件等。 安装配置完连接参数后,用默认管理员账号:辞郁,密码:ciyu登录,主界面左上角,双击输入管理员辞郁密码:ciyu 进入设计模式。下载内容中有详细示例截图。 辞郁POP打印工具是一款专业的打印解决方案,主要针对零售行业的商品POP促销单。它支持多种零售软件系统,包括但不限于思迅软件、科脉软件、百威软件、泰格软件和嬴通软件。这种工具的出现极大地便利了零售业者在商品推广和营销方面的操作,通过快速生成并打印商品促销单,帮助商家更好地吸引顾客、提升销售业绩。

  • 基于蒙特卡洛法的电动汽车负荷预测模型及其MATLAB实现与分析

    内容概要:本文详细介绍了利用蒙特卡洛法对电动汽车负荷进行预测的方法。首先解释了基本原理,即通过建立电动汽车出行时间、行驶里程和充电时间的概率模型,采用蒙特卡洛法进行抽样并累加每辆车的充电负荷,从而得出负荷预测结果。随后展示了具体的MATLAB代码实现,包括初始化参数设置、蒙特卡洛仿真循环、结果处理和可视化。代码中涉及到随机数生成、概率分布、数组操作等关键技术点。通过对不同类型的电动汽车(如私家车和出租车)进行建模,模拟了它们的充电行为,并分析了充电负荷的时间分布特点。最后讨论了模型的可扩展性和改进方向,如引入智能充电策略等。 适合人群:对电力系统、电动汽车技术和蒙特卡洛仿真方法感兴趣的科研人员、工程师和技术爱好者。 使用场景及目标:适用于研究和评估电动汽车对电网的影响,帮助规划和设计充电基础设施,确保电网稳定运行。同时,也为进一步优化充电策略提供了理论支持。 其他说明:文中提供的MATLAB代码可以作为学习和研究的基础,用户可以根据具体情况进行修改和完善。此外,还提到了一些常见的编程技巧和注意事项,有助于提高代码质量和效率。

  • 基于Python的电网故障仿真:序分量分析与应用

    内容概要:本文详细介绍了如何利用Python进行电网故障仿真,重点在于不同类型故障(单相接地、相间短路、相间短路接地)下的序分量分析。文中首先准备了必要的工具包,定义了系统参数,并通过具体的代码实例展示了如何计算和可视化各种故障状态下的正序、负序和零序分量。此外,还讨论了不同类型的故障对序分量的具体影响及其在继电保护中的应用。通过这些仿真,能够更好地理解和预测保护装置的动作特性。 适合人群:从事电力系统分析、继电保护设计以及相关领域的工程师和技术人员。 使用场景及目标:适用于研究和开发电力系统的故障检测和保护机制,帮助工程师们优化继电保护装置的参数设置,提高电力系统的稳定性和可靠性。 其他说明:文章强调了仿真过程中需要注意的关键点,如接地电阻设置、变压器接线方式、线路参数单位等,确保仿真结果的准确性。同时,提供了多个代码片段作为参考,便于读者快速上手实践。

Global site tag (gtag.js) - Google Analytics