Spring2.0 PK EJB3.0

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Spring自从2003年发布以来,一直是Java开源框架的奇迹之一。从2000年开始,伴随着B/S架构逐渐引入企业应用软件开发的领域,Java就逐渐成为企业应用开发的主流技术,一直到2003年,Struts+EJB一直是Java技术架构的不二选择,然而这一切随着2003年Spring以without EJB的面目出现之后,一切都开始改变。

大概从2003年下半年开始,Spring+Hibernate就开始甚嚣尘上,似乎那时候的Spring和Hibernate尚且不足以动摇J2EE规范以EJB为核心的领袖地位。但是2004年5月份,吸收了Spring/Hibernate框架优点的EJB3 JCP委员会的成立,事实上宣判了Spring对EJB2的终结,EJB3则更像是Vendor们的一种自救行为。

2004年到2006这三年时间以来,Spring取得了相当辉煌的成就,不但将EJB2赶进历史,而且牢牢确立了Spring作为Java企业应用开发的主流地位。而今,甚至对技术比较保守的金融电信行业,也开始言必称Spring,Spring已经成为Java框架的事实标准。

在2004年5月份之后,Hibernate Team开始和Spring公然决裂,这个事情放在两年多以后的今天来看,原因是昭然若揭的,背靠JBoss的Hibernate Team已经成为EJB3规范的一部分,而JBoss希望力推的以EJB3为核心的Java架构来成为未来的企业应用主流标准,这种情况演变至今,变成了Springframework和JBoss Seam的两种不同技术架构的竞争关系。

2004年5月份,EJB3规范的起步,对Spring未来其实有很大的威胁,但是EJB3规范历经两年时间的难产,终于在2006年5月正式发布之时,已经为时过晚了,抬眼望去,已尽是spring的天下。

有意思的是,大致展望一下未来,Java的企业应用开发还能遵循Sun和JCP制订的Java EE规范的道路走下去吗?如果不是这样,那么未来道路是什么呢?

观察一下Java社区几股大的势力,会发现一些有意思的现象:

IBM和BEA是Java社区的领导者,从2004年开始,IBM和BEA开始大肆宣传SOA,将他们的目光从应用服务器领域挪到了松藕合企业服务领域,开展SOA商业战略。与此同时,EJB3专家委员会的领导者也悄然变成了JBoss和Oracle,是IBM和BEA无力争取吗?当然不是。IBM和BEA已经看到了应用服务器市场和底层框架平台即将被开源占领,商业价值萎缩,因而审时度势进行战略转型。一方面押宝SOA战略,大肆炒热和培育SOA市场,另一方面也积极占领开源市场,IBM放出来WebSphere社区版本-Apache Geronimo,BEA干脆和Spring的咨询公司interface21合作,提供spring框架在WebLogic上的商业技术支持,如今EJB3对于他们来说已经形同鸡肋,就抛给别人嚼吧。

将EJB3当块宝的自然是应用服务器市场的跟随者JBoss和Oracle,一方面凭借ORM的先天优势,另一方面有出头机会也不能放过,EJB3委员会几乎成了JBoss和Oracle的天下。特别是JBoss,更加积极推出JBoss Seam框架,希望确立以JSF+EJB3的架构树立Java开发的标准,用以取代Struts/Spring/Hibernate的流行组合,因而开启了EJB3和Spring 正面交锋的战争。

Java Vendor中另外一股势力Sun公司这两年则一直自顾不暇,在应用服务器领域几乎退出市场,直到最近才搞出来一个Glassfish,在开发框架领域也一直毫无建树,推出的JSF至今还很不成熟,难担大任,也许Sun都去忙着开源Solaris和JVM源代码了。

几个大的Vendor或战略转型,或自顾不暇,或忙于收购(Oracle),Java开发领域的主战场被打扫一空,对决的双方换成了Spring和JBoss。对决的武器则是spring vs Seam。

Spring代表了不遵循通用标准,自己制订游戏规则,不依赖容器的一方;JBoss代表了遵循通用标准,但是锁定容器的一方。这场对决从2004年5月就开始上演,未来很长时间也会继续下去。不过Spring已经站在优势很大的地位上了。

大致对比一下两者:Spring vs EJB3,就会发现Spring从功能上面已经胜出很多了:

1、IoC容器spring胜出

Spring的IoC容器很强大,其bean管理功能超过了目前EJB3容器,配置方面Spring稍微复杂一些。不过对于全局性配置来说,XML要优于EJB3的annotation。

2、AOP能力Spring胜出

EJB3目前提供的AOP功能非常简单,本来已经无法和Spring相比,至于集成AspectJ的Spring2.0,就更加望尘莫及了。

3、事务管理方面EJB3稍微领先

Spring提供了很棒的本地事务模型,也可以集成JTA,但是不支持分布式事务,当然这种场景也非常罕见。

4、Web框架spring胜出

EJB3标准集成JSF,但是JSF并不成熟,和AJAX配合度也不好。Spring可以灵活集成各种Web框架和模板语言,自身也提供了相当强大的MVC框架,要是这还觉得不够,那么spring webflow,portlet support都拿出来。

5、远程访问支持,大致持平

EJB3继承了传统的EJB远程访问能力,Web Services支持也不错;不过Spring提供了更多更灵活的选择,Java RPC,HTTP Invoker,Hessian/Burlap,WebServices。

6、框架集成能力,spring胜出

这是spring的传统优势项目,只要看看spring modules项目,看看n多第三方spring支持,就会发现spring现在的群众基础多么好,集成工作流,spring modules已经提供了方便的模板类,集成规则引擎,Cache,CMS,脚本语言,异步任务,安全验证框架。。。。。。EJB3有点望尘莫及的味道

7、JMS,JMX,JCA等,EJB3领先一步

这些传统EJB优势项目往往应用的不太多,EJB3仍然是领先的。不过令人侧目的是,Spring最近几个版本在连续追赶EJB这些传统优势领域,到Spring2.0为止,其JMS,JMX,JCA支持已经相当不错了,可以说传统EJB能够做的,现在Spring也可以做得到。

这几年除了Spring框架自身不断完善和延伸到传统应用领域,围绕在Spring周围的第三方框架也是越来越丰富,EJB3在annotation方面有些独到的优势,在一些传统领域,还领先spring,但是总体来说,EJB3为核心的J2EE5.0规范很难和Spring现在的2.0相匹敌,更何况Java的主力Vendor早已醉翁之意不在这里了,单凭JBoss的Seam,难以战胜spring。

目前JBoss已经开始在国内进行商业上的推广,也希望以其EJB3技术来和Springframework相抗衡,JBoss目前用来说服客户使用EJB3的理由主要有两点:

1、EJB3是一个标准,由多个厂商提供实现
2、JBoss的EJB3由Red Hat公司及其合作伙伴提供技术支持,而springfrmework在国内还没有商业技术支持

 
UAP开发中遇到的问题 1.Failed to set property: vbillstatus at bean…… vbillstatus参数类型错误,在主子表开发中,元数据中的“单据状态”的数据库映射字段必须为int类型,不能是varchar(虽然在VO中这个字段是String),否则会报这个错误。 2. ... 阅读详情

相关推荐

springejb的区别

springejb.pdf 详细讲述springejb

SpringEJB 比较

SpringEJB 比较在开源领域,Spring开源框架已成为企业应用开发中使用最多的开源框架。Spring框架的优秀不但表现在其优雅的底层设计、使用方便快捷、面向工作实践、超强粘合能力等方面,另外一个不可忽视的方面是Spring拥有一个世界一流且活跃的技术开发团队。随着Spring的流行,于是,大家开始对比Spring与另一种流行的框架组件EJB。目前网上关于Spring

1万+

Spring2.0EJB3.0随谈

Spring自从2003年发布以来,一直是Java开源框架的奇迹之一。从2000年开始,伴随着B/S架构逐渐引入企业应用软件开发的领域,Java就逐渐成为企业应用开发的主流技术,一直到2003年,Struts+EJB一直是Java技术架构的不二选择,然而这一切随着2003Spring以without EJB的面目出现之后,一切都开始改变。 大概从2003年下半年开始,Spring+Hibe...

robbin的专栏 237

带你走进EJB--EJBSpring对比

通过对EJB系列的总结和学习我们已经对EJB有了基本的了解,但是为了更进一步的去深入学习EJB,我们很有必要将它拿出来跟之前非常熟悉的Spring进行一下对比,通过对比来了解这两个内容的相同与不同之处,更有利于我们对两者进行深入的了解.          我们都有过这样的经历,在开发应用程序的时候,选择哪个技术是比较有学问的.在我最近的面试过程中也有很多问道关于技术选型的问题,举一个比较典型

潛龍,勿用 1万+

Spring学习(一)-SpringEJB

EJB的优缺点 EJB提供了很多有价值的服务,如声明事务、透明持久化等,EJB可以解决的A公司和B公司使用的都是Java语言,出于不同的java虚拟机的情况,但是EJB的复杂源于它对企业应用采用统一的标准,它认为所有的企业应用都需要分布式对象、远程事务,因此造就了EJB框架的极度复杂。它的最大诟病就是在每一次测试都要进行应用部署并启动EJB容器,而部署和启动EJB是一项费时费力的操作。 Sprin...

weixin_42544630的博客 487

SPRING VS EJB3

埋头用了 N 久的 Spring, 习惯了满天飞舞的 SSH, SSI, SS... ,没再顾得上还有个 EJB 的存在,一提及 EJB 便联想到了失败,且是重量级的失败。 时过境迁,剩者为王,好歹 springejb3 都剩了下来,所以需要再次 PK 一下。   有牛人很久以前做了大量功课,Spring PK EJB 3.0,我们该选择哪一个?http://tech.it168.co...

cnmqw的专栏 126

Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0 Annotations注解框架整合及其代码分享

Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0 Annotations注解框架整合及其代码分享,代码下载地址:http://www.zuidaima.com/share/1780237805931520.htm

云淡风轻、仅此一抹 2364

EJB3+JPA

EJB JPA 代码参考

shibushi114的专栏 200

SpringBoot框架篇】11.Spring Data Jpa实战

文章目录简介JPASpring Data JpaHibernateJpa、Spring Data Jpa、Hibernate三者之间的关系应用实战引入依赖配置文件实体类常用注解@Entity和@Table@Id和@GeneratedValue@Column@Transient继承超类的通用字段属性@MappedSuperclass@Inheritance审计功能启用审计功能在启动类里添加注解在需要使用的类上面添加审计监听器审计功能注解添加审计人 简介 首先了解一下 JPA,Spring Data Jpa,之

皓亮君的博客 4298

基于Spring打造简单高效通用的异步任务处理系统

背景随着应用系统功能的不断新增,而某些功能的实现对实时性要求并不是那么高,但是逻辑却很复杂、执行比较耗时,比如涉及外部系统调用、多数据源等等;此时,我们就希望可以让这些复杂的业务逻辑放在后台执行,而前台与用户的交互可以不用等待,从而提高用户体验;另外,从系统架构这个层面来说,我们也希望按照不同功能来拆分,以保持各个系统之间的低耦合,当一个系统出现问题时不会影响到其他系统,并且对于独立的各个

老唐 的专栏 2万+

网络相册开发(4)——Spring中配置JPA

在src/META-INF下添加persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...

vyyv 342

BaseManager

package org.neo.core.base; import java.util.HashMap; import java.util.List; import java.util.Map; import java.io.Serializable; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttr

andyliu020118的专栏 760

一个程序员充实的2006

序  已经是2007年了,拿到的很多杂志都是2006年度特别版本,这里也跟着学习一下,对作为一个程序员、一个开源人的我作一个年度总结,拿来跟大家分享。一、学习 《四书五经》,看了几十页就读不下去了,那个痛苦啊,就像很多搞惯asp或php粗糙简单开发的人想要学习充斥精妙艺术的java一样难,更像那些搞java的为了跟着牛牛去学习使用大师们搞的具有“更高深艺术”的Rails,而不得不去学习语法格式

软件开发资料汇总 380
上一篇: 601111
下一篇: java.lang.reflect包
eagle11936
博客等级 码龄21年 6粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值