NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

做为职业技能需求,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:591286
用户头像

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

关注

评论

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

设计模式第六讲:责任链模式和迭代器模式详解

C++后台开发

设计模式 责任链模式 迭代器模式 后端开发 Linux服务器开发

Bytebase 体验官之勇闯新手村

朱亚光

如何在现实场景中随心放置AR虚拟对象?

HMS Core

HMS Core

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

Baidu AICLOUD

边缘计算 分布式云

GaiaX开源解读 | 表达式作为逻辑动态化的基础,我们是如何设计的

阿里巴巴文娱技术

开源 研发效能 服务端 多端开发

聊一聊 gRPC 中的拦截器

江南一点雨

gRPC

Wallys /industrial wifi6 router/ Ipq6010 /ipq6018/ipq6000 2x2 2.4G & 5G

Cindy-wallys

IPQ6010 ipq6018 IPQ6000

CNCF社区首个!KubeEdge达到软件供应链SLSA L3等级

华为云开发者联盟

云原生 华为云 企业号 2 月 PK 榜 华为云开发者联盟

IoT设备数据业务价值洞察实践——实践类

阿里云AIoT

阿里云 物联网 IoT

一文读懂Guava EventBus(订阅\发布事件)

京东科技开发者

架构 观察者模式 Guava EventBus 企业号 2 月 PK 榜

Maxon explosion-proof industrial wireless access point, bridge, router, DTU

wifi6module

Wi-Fi 6 wireless wireless communication wifi solution wifi6,

软件测试/测试开发 | web自动化测试-文件上传与弹框处理

测试人

软件测试 自动化测试 测试开发 Web自动化测试 selenium

性能测试中获取JVM资源信息

FunTester

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器

股市老人

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器

EOSdreamer111

Greenfield

股市老人

使用 NGINX 在 Kubernetes 中实现多租户和命名空间隔离

NGINX开源社区

nginx NGINX Ingress Controller NGINX Kubernetes Gateway 企业号 2 月 PK 榜

李宏伟 安警官的IP地址已经锁定你!IP地址究竟如何定位到莽村附近?

郑州埃文科技

IP地址 IP定位查询

rust入坑指南之ownership

京东科技开发者

rust JVM 内存 企业号 2 月 PK 榜 ownership

软件测试/测试开发 | web自动化测试-PageObject 设计模式

测试人

软件测试 自动化测试 测试开发 Web自动化测试

Seal 0.4 发布:软件供应链安全洞察更上一层楼!

SEAL安全

软件供应链安全 SEAL 企业号 2 月 PK 榜

政企服务机构如何进行数字化转型?

优秀

数字化转型

海量并发低延时 RTC-CDN 系统架构设计(上)

网易云信

实时音视频 音视频开发

为什么大多数团队推行自动化测试最后却不了了之?

Liam

测试 自动化测试 测试自动化

0源码基础学习Spring源码系列(二)——Spring如何解决循环依赖

京东科技开发者

spring 源码 初始化 二级缓存 企业号 2 月 PK 榜

2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?

墨天轮

MySQL 数据库 oracle 工资 dba

Apache Doris 1.2.2 Release 版本正式发布

SelectDB

大数据 数据分析 OLAP 分析型数据库 数据库·

软件测试 | 常用模拟器使用

测吧(北京)科技有限公司

测试

飞桨助力南京邮电大学智能芯片测试团队斩获“互联网+”大赛全国银奖

飞桨PaddlePaddle

paddle 芯片 大学生 飞桨 国赛

海泰方圆受邀参加中关村网信联盟会议并斩获三项殊荣

电子信息发烧客

DR-AP40X9-A-Qualcomm-IPQ4019/IPQ4029-2.4G&5G

Cindy-wallys

IPQ4019 ipq4029

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