写点什么

做为职业技能需求,Spring 超过 EJB 了吗?

  • 2008-02-21
  • 本文字数:1587 字

    阅读完需:约 5 分钟

Rod Johnson 将 Indeed.com(一个求职网站)职位列表中对 EJB 和 Spring 两种技能的需求数量进行了对比,并通过分析这一统计数据得出了一些关于 EJB 的发展过程及其未来的结论。他围绕着会话 Bean 和消息 Bean 对 EJB 展开了讨论,并承认 JPA 做为独立的规范是有价值的,JPA“是基于现代技术并已开始体现其价值”。首先,Johnson 阐述了职位要求所体现的趋势的重要性:

职位列表是技术真正被采纳的良好指示器。它们表明公司是否把钱花在了“刀刃”上;它们为开发人员指明获取、增强相关技能的重要性(这是技术延续的一个重要因素);它们还为公司稳妥地采用特定技术提供了良好的指导。

随后,Johnson 介绍了下面这个图表。该图表显示,截止到 2007 年 11 月,Java 职位列表对 Spring 技能的需求已经超越了 EJB。他认为倘若现在基于 EJB 的应用数量仍相当可观的话,那是很令人惊诧的。

Johnson 评论这些趋势的时候有些洋洋自得,因为他 2003 年以来就预言 EJB 会因他在 J2EE without EJB 一书中描述的那些缺点而失去其实用性。甚至在他看来,EJB3.0 新的改进也不足以遏制这种趋势:

EJB 3.0 改进了一些事情,但还是太少、太迟:依赖注入(DI)的能力不足以满足实际需要;拦截 API 认识到了需要有一个对横切关注点的解决方案,但我们看到的还是一个最差、最笨重、最容易出错的解决方案(我一直想在博客上发布的一些东西);由于要兼容那些现在已不相关的旧有技术,把它拖累了;沉重的 EJB 契约(它比“简化的编程模型”多出数百页)需要一个相当复杂的运行时环境,而且开销很大;尽管有语法糖(syntax sugar),但它还是不能掩盖 EJB 的大量缺陷,例如启动行为、单例、以及废弃的线程模型。最后,每次改变基础环境的时候,它都要有效地绑定到一个应用服务器环境中去。

接下来,他解释了对整个行业及开发人员个体来说,EJB 的衰落意味着什么:

  • 这不是反对标准——而仅仅是有选择性地反对那些无实际意义的标准。正如我长期以来一直指出的那样,Java EE 不只是 EJB,任何关心这个平台的人都应该真诚地对待其各部分的质量和关联性。
  • 随着越来越先进的技术,业务对象变成了 POJOs,对特殊组件模型的依赖在减少,标记也变得不那么重要了。
  • 抛弃 EJB 后会有更好的架构灵活性来应对需求的变化。随着 SOA 和其它力量的兴起,公司也越来越多地选择轻量级的部署平台。

Johnson 总结到:“由于其绝对数量仍然相当多,EJB 不会很快消失。但是趋势曲线清楚地表明它正在逐渐成为过去”。EJB 怀疑论者 Rick Hightower 也相信 EJB 仍然会存在一段时间。同时,他还表现出对这种对比方式的关注:

然而,EJB 被废弃还是比较遥远的事情,难道不是吗?把 Spring 这样的通用架构(比如 Spring MVC、Spring WebFlow、Spring XXX)和 EJB 这样有侧重点的框架放在一起做比较真的公平吗?正如从 EJB3、Seam 和 Spring 的比较图中看到的一样,对现有的开发人员来说,这种相对比较的方式是很不公平的。

Ray Van Eperen also commented in regards to the need to consider the possible impact of other technologies:

……对于象 Seam 这样的技术显然有一些疏漏,但 Seam 结合了 EJB 3.0,它也弥补了很多 EJB 模型原有的缺点,也提供了许多与 Spring 一样的优点(使用 POJOs 和 IOC 等)。依我愚见,它要比 Spring 更好一些(比如说,它几乎完全基于注释,而不是 XML)。我不是想打击 Spring,我只是想说结合了 Seam 和其它技术(像 JSF)的 EJB3 提供了一个非常可行的 Spring 的替代方法。

假如基于 EJB 的那些应用中有相当一部分内容是依赖于应用服务器的,而应用服务器恰恰是采用 EJB 规范专有的实现,那么在一些为它们的核心 Java 企业组件模型权衡开源框架的公司中,这些趋势会增加他们的信心。这些对比在表明 Spring 框架正在走向胜利的同时,不也恰恰表明 EJB 模型即将开始失去其实用性了吗?

查看英文原文 Spring Overtakes EJB as a Skills Requirement?

2008-02-21 03:591471
用户头像

发布了 151 篇内容, 共 63.4 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

开源一夏 | 在 STM32L051 上使用 RT-Thread (二、无线温湿度传感器 之 CubeMX配置)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

全新物联网数据集成:Flow可视化编排&双向数据桥接

EMQ映云科技

物联网 IoT flow emqx 8月月更

2min速览:从设计、实现和优化角度浅谈Alluxio元数据同步

Alluxio

元数据 数据同步 Alluxio 大数据 开源 8月月更

怎么理解后App时代的轻应用技术

FN0

App 小程序容器 轻应用 快应用

量化交易合约机器人系统开发策略分析

薇電13242772558

量化策略

开源的价值观与文化的传递

开源社

#开源

融会贯通,并行不悖 | 2022年8月《中国数据库行业分析报告》精彩抢先看

墨天轮

数据库 greenplum MPP 国产数据库 HTAP

4步教你学会使用Linux-Audit工具

华为云开发者联盟

Linux 工具 安全 监控 开发

泄露了,22年阿里巴巴秋招内部面试资料,看完之后剑指offer

Java面试那些事儿

Java 编程 程序员 面试 架构师

关起门来搞开源,做不了开源世界的Leader

源字节1号

开源 软件开发

企业应用现代化实用教程 | 如何快、准、狠地进行应用容器化改造?

York

容器 云原生 数字化转型 架构设计 应用现代化

数据结构——二叉树

工程师日月

8月月更

我和谷歌共成长——我的Google Play上车之路

云村的泊

8月月更

闲谈Serverless,价值和未来

白留明(Armin.Lionheart)

云计算 Serverless Faas

加密市场由阴转晴,Zebec或成2022后半段黑马

鳄鱼视界

OpenHarmony轻量设备Hi3861芯片开发板启动流程分析

OpenHarmony开发者

OpenHarmony

面向大规模数据的云端管理,百度沧海存储产品解析

百度Geek说

人工智能 数据

基于深度学习的细粒度分类研究及应用

之家技术

人工智能 深度学习 模型 图像 CVPR

动态尺寸模型优化实践之Shape Constraint IR Part I

阿里云大数据AI技术

深度学习 编译器

【限时领奖】消息队列 MNS 训练营重磅来袭,边学习充电,边领充电宝~

阿里巴巴中间件

阿里云 云原生 消息队列 课程 MNS

怎样评测对比报表工具的性能?

Bug终结者

Java sql SPL 8月月更

短视频直播app源码——软件系统开发方案

开源直播系统源码

软件开发 直播系统源码 短视频直播源码 短视频直播

国产系统的不足或许可以靠小程序弥补

Geek_99967b

小程序

秒验丨Android端SDK API使用说明

MobTech袤博科技

android UI 秒验

mybatis基础的crud

Geek_5829b6

Java mybatis

微服务、网关、服务发现/注册的正确打开方式

Java全栈架构师

Java 程序员 架构 微服务 程序人生

10种有用的Linux Bash_Completion 命令示例

华为云开发者联盟

Linux 后端 开发

华为云构建云原生DevSecOps平台,保障软件供应链全流程安全可信

华为云开发者联盟

云计算 云原生 安全 后端 华为云

加密市场的投资布局,Zebec实属价值洼地

西柚子

.NET 6 SignalR websocket 入门(一)

辣么大

.net SignalR 8月月更

mybatis入门案例

Geek_5829b6

Java 数据库 mybatis

做为职业技能需求,Spring超过EJB了吗?_Java_Floyd Marinescu_InfoQ精选文章