Spring超越EJB成为技能需求

工程 | Rod Johnson | 2008年1月24日 | ...

职位列表是衡量技术实际应用情况的重要指标。它们表明公司是否正在投入资金,从而能够区分实质和炒作;它们表明开发者获得和提升相关技能的重要性(技术延续的一个重要因素);它们也为公司采用特定技术提供了良好的安全指南。

因此,Indeed.com(一个职位列表聚合网站)的jobtrends网站是一个重要的资源。它允许追踪一段时间内职位需求数量的趋势,并方便比较不同的技术。

有时,这些趋势会产生戏剧性的影响。Indeed.com显示,在2007年11月,Spring在Java职位列表中的技能需求方面超过了EJB。截至昨天,Spring的职位数量为5710,而EJB为5030。

比较职位数量的绝对值,我们可以看到趋势线以及它们交叉的地方。

Spring vs EJB absolute job numbers

鉴于EJB拥有大量的遗留代码,这令人惊讶。据推测,现在很少有新项目使用EJB了。

比较各自增长率的“相对”图表更有趣,它显示了两种技术之间明显的对比。

Spring vs EJB relative job numbers

我们可以看到,EJB的需求停滞不前甚至下降,而Spring的需求却以越来越快的速度增长。

当然,Spring和EJB并非相互排斥。使用Spring并不妨碍你使用EJB,反之亦然。在某些情况下,EJB会提供你在使用Spring的应用程序中可能需要的有用服务。在没有Spring的情况下使用任何版本的EJB,就等于放弃了许多宝贵的额外功能。事实上,正是EJB的支持者(无论出于何种原因)将这两种技术描绘成直接竞争对手。

两种技术之间的重叠是显著且不断增长的,但增长速度不如Spring的需求增长速度快。

Spring and EJB job numbers

虽然这不是一个完全相同的比较,但将Spring和EJB视为企业Java应用程序中核心组件模型的替代方案是合理的。很明显,现在Spring正处于上升阶段。

我必须承认,我对此感到一定程度的个人满意,因为我自2003年初以来就一直在预测EJB将成为遗留技术,并且在此之前就认为EJB被过度使用了《J2EE without EJB》中,我详细分析了EJB模型的缺陷,以及它如何未能达到其既定目标或开发者和客户的需求。那时,这样的说法是极具争议的。

EJB 3.0在一定程度上有所改进,但这仍然是太少、太晚了:DI功能不如现实世界所需的那样强大;拦截API认识到需要解决横切关注点的问题,但它提供的解决方案是最不强大、最笨拙、最容易出错的解决方案(我一直想写一篇博客来讨论这个问题);它背负着与现在无关的上一代技术的向后兼容性的包袱;完整的EJB契约(比“简化编程模型”长几百页)规定了一个具有过多开销的复杂运行时;尽管它有语法糖,但它未能解决EJB的一些缺陷,例如启动操作、单例和过时的线程模型。最后,它实际上与应用程序服务器环境绑定在一起,而基础设施正在发生变化。

我可以继续讨论这些缺陷,但职位数量说明了成千上万家公司的实际经验和结论。

请注意,我在这里谈论的是会话Bean和消息Bean;JPA现在是一个单独的规范,基于现代技术,并且正在证明其价值。

EJB的衰落对整个行业以及个体开发者意味着什么?

  • EJB衰落有很多很好的技术原因,这令人鼓舞。这是许多迹象之一,表明如今比J2EE出现时更难强加从未在实践中得到验证的解决方案。这是一件好事。
  • 这不一定是对标准的拒绝——而仅仅是对不产生结果的标准的健康拒绝。正如我长期以来一直争论的那样,Java EE不仅仅是EJB,任何关心整个平台的人都应该诚实地对待各个部分的相关性和质量。
  • 有了更好的技术,业务对象变成了POJO,对特定组件模型的依赖性降低了,标签也变得不那么重要了。
  • 随着SOA和其他力量的兴起,以及公司越来越多地选择更轻量级的部署平台,远离EJB提供了更大的架构灵活性,尤其是在需求不断变化的时候。虽然在完整的应用程序服务器之外也支持EJB 3.0模型的各个部分(包括在Spring 2.5中,它除了自身模型外还提供EJB 3.0 DI模型,以及在Pitchfork中,它被用作WebLogic 10的EJB 3.0实现的基础),但EJB是一个从根本上依赖于部署到传统应用程序服务器的组件模型。

坦率地说,EJB时代是一个异常。EJB未能解决本世纪初的问题;它对未来的问题仍然更加不足。EJB最初的大多数前提现在都被推翻了;该规范坚持向后兼容性并不能证明它所带来的权衡是合理的。它的衰落是转向一个新的、更灵活的世界的一个自然结果,在这个世界中,诸如OSGi和简单的Servlet API等技术被证明更相关。当然,由于绝对数量仍然非常高,EJB不会很快完全消失。但趋势线清楚地表明,它正在成为遗留技术。

在宣布SpringSource Spring认证计划之前,职位需求达到了这个里程碑,这正逢其时。现在Spring已经成为市场上如此重要的技能,因此对雇主和开发者来说,拥有衡量Spring知识的明确标准非常重要。

2007年领先行业网站的统计数据最近也进一步证明了Spring的势头。在ServerSide上,前5篇文章中有2篇是关于Spring的,包括排名第一的文章。在InfoQ上,前10篇文章中有3篇是关于Spring的,其中排名第一的文章(我的Spring 2.0更新)的页面浏览量是第二名文章的4倍。

获取Spring简讯

通过Spring简讯保持联系

订阅

领先一步

VMware提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部