EJB3.0历史
来源:互联网 发布:淘宝金币怎么充值 编辑:程序博客网 时间:2024/05/16 19:40
來源:http://shuixian.javaeye.com/blog/601335
EJB3.0历史
Java企业版API(Java Enterprise Edition)中提供了对EJB的规范。EJB是一个封装有某个应用程序之业务逻辑服务器端组件。EJB最早于1997年由IBM提出,后被SUN采用并形成标准(EJB 1.0 和EJB 1.1)。其后在Java社区进程(Java Community Process)支持下陆续有一些JSR被制订来定义新的EJB标准,分别是JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0)。
由于IBM和Sun等EJB提倡者力推其前景,起初一些大公司纷纷采用EJB部署他们的系统。然而随后各种问题便接踵而至,对EJB的恶评短时间内激增。对于初学者,EJB的API显得太过困难;对于许多程序员来说,书写那些必须抛出特定异常的接口并将bean类作为抽象类实现的做法既不直观也不正常。当然,EJB所被赋予的使命,如对象关系映射和事务管理确实有其天然复杂性,但其API之复杂还是令开发人员们觉得望而却步,一些人开始怀疑EJB除了引入了复杂的实现手段以外似乎并未带来什么实际好处。
另外,实际运用中被发现,如果使用EJB来封装业务逻辑会带来性能上的下降。这是因为,最早的EJB规范只允许客户端通过特定协议(如CORBA)进行远程方法调用,即使大部分实际应用根本就不需要分布式计算。直到EJB 2.0才引入了本地接口,以支持可以开发不通过网络就能直接本地调用的EJB系统。尽管如此,EJB的广泛普及仍然为其复杂度所制约。
EJB规范起初的一个主要价值-对分布式应用进行事务管理-在随后的实践中被一致认为几乎没能派上用场。对于企业级应用来说,Spring和Hibernate等简化框架更加实用。因此,EJB 3.0规范(JSR 220)为了迎合这个趋势相比于之前进行了一次激进的大跳跃。受到Spring 影响,EJB 3.0也使用所谓的“传统简单Java对象(POJO)”;同时,支持依赖注入来简化全异系统的集成与配置。Hibernate的创始人Gavin King参与了这一新版规范的制订,并对EJB大加提倡。Hibernate的许多特性也被引入到Java持久化API当中,从而取代原来的实体bean。EJB 3.0规范大幅采用Java注释(annotation)来对代码进行元数据修饰,从而消减了此前EJB编程的冗杂性。相应地,EJB 3.0几乎成为了一个全新的API,与此前的数版可谓毫无相似度可言。
以下列出了版本的具体变化:
(1) EJB1.0
1998年3月24日发布。
n 定义了EJB和EJB容器的作用,实现与互动。
n 提供了最早的开发者与用户视图。
(2) EJB1.1
1999年12月17日发布。
n 开始采用XML部署描述符,默认的JNDI上下文以及可支持IIOP的RMI。
n 安全机制由角色(Role)驱动,而非方法。
n 支持实体类,且必须在应用中实现。
(3) EJB2.0
2001年8月22日发布,JSR 19 定义。
n 制定了构建面向对象商务应用的标准组建结构。
n 支持构筑使用不同开发工具所开发之组件的联合应用部署。
n 在多线程,连接池,事务管理等方面对用户透明化。
n 使符合“一次写成,多次运行”的Java思想。
n 关注企业级应用生命期间的开发,部署,运行等动作。
n 定义了不同开发工具所需遵守的契约,以便其产品能够在运行期交互。
n 支持与现行系统兼容,开发者可以扩展现有产品以使之支持EJB。
n 与其他Java API兼容。
n 支持EJB与Java2平台企业版或者其他非Java应用程序之间的互操作性。
n 支持与CORBA兼容的RMI-IIOP。
(4) EJB2.1
2003年11月24日发布,JSR 153定义。
n Web服务:可将无状态会话bean暴露为Web服务;EJB可通过引用访问Web服务。
n EJB定时器服务:提供一种新的基于定时器的事件驱动方式。可供消息驱动bean作为消息源使用。
n 增加了消息目的地。
n 进一步丰富了EJB查询语言,支持ORDER BY, AVG, MIN, MAX, SUM, COUNT和MOD。
n 使用XML schema代替DTD以定义部署描述符。
(5) EJB3.0
2006年5月2日发布,JSR 220定义。
n 全面采用Java注释代替部署描述符。(后者仍可使用,并且具有更高优先级)
- EJB3.0历史
- EJB3。0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0概览
- EJB3.0概览
- ejb3.0新特性
- Jboss EJB3.0 security
- Jboss Ejb3.0 Interceptor
- EJB3.0介绍
- EJB3.0介绍
- EJB3.0学习感触
- EJB3.0范例
- EJB3.0 Using Jaas
- 开博原因
- 外企常用英文
- asp.net平台上连接数据库
- 网站优化之新站收录有考核期
- MyEclipse 中使用sysout(System.out.println())快捷键
- EJB3.0历史
- vs2008 vs2010 快捷键
- php基础——Adodb
- larbin中input.cc(input函数)源码阅读
- Myeclipes6.5 快捷键
- 瘦瘦吧
- POJ 1001解题报告
- 如何给组件添加事件并传递参数
- QC使用流程(1)