EJB(Enterprise JavaBeans)是一个用来构筑企业级应用的服务器端可被管理组件,是使用Java语言构造可移植的,可重用的和可伸缩的业务应用程序的平台。由于EJB的复杂性使之在J2EE架构中的表现一直不是很好。EJB3.0是以前版本的升级版本,EJB3.0规范减轻其开发的复杂性,减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及O/R映射模型的复杂性。
EJB规范的目的在于为企业及应用开发人员实现后台业务提供一个标准方式,从而解决一些此前总是在作业过程中总是重复发生的问题。EJB以一个标准方式自动处理了诸如数据持久化,事务集成,安全对策等不同应用的共有问题,使得软件开发人员可以专注于程序的特定需求而不再饱受那些非业务元素的困扰。
1.2 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注释代替部署描述符。(后者仍可使用,并且具有更高优先级)
1.3 EJB3.0特点
1.3.1 易用性
1.3.1.1 简化的程序设计模型
EJB3使你可以使用POJO和POJI开发EJB组件。然后使用注解对这些POJO和POJI应用配置元数据,以便添加平台服务,比如Web Service支持、生命周期回调等。
1.3.1.2 简化的持久化API
JPA定义了一种方法,可以将常规的POJO映射到数据库。使用JPA的entity对象并不要求实现任何规范特有的接口或类。Java Persistence规范定义了一个完备的对象关系映射(ORM),如此,带来很多好处。第一entity便能够在厂商之间轻松移植,还能用于应用服务器之外的常规Java应用程序,甚至可以用于客户端和服务器之间的数据传输。这使得设计更加简洁、紧凑。
1.3.2 集成解决方案套装
EJB3提供服务器解决方案的完整套装,包括持久化、消息、Web服务、依赖注入和拦截器等。这就是说你不必花费很多时间寻找第三方工具并将其集成到应用程序中。
相关推荐
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
黎活明老师的这本书《EJB3.0》是国内首部全面解析EJB 3.0技术的专业著作,旨在帮助读者深入理解这一核心技术。 ### 1. EJB 3.0的核心概念 - **实体Bean(Entity Beans)**:EJB 3.0中的实体Bean不再需要编写复杂的...
#### EJB3.0简介 企业JavaBeans(EJB)是Java平台上的一个重要组件模型,主要用于构建可移植、健壮且安全的企业级应用。EJB3.0作为该技术的重要版本之一,在2004年发布,带来了诸多改进和新特性,显著简化了开发...
### EJB3.0中文文档知识点总结 #### 第一章:EJB知识与运行环境配置 **1.1 什么是ENTERPRISE JAVA BEANS (EJB)** EJB(Enterprise JavaBeans)是一种Java标准,用于构建分布式、健壮的企业级应用程序。它允许...
3. **ejb3.0-1.pdf** - 这可能是EJB 3.0的特定部分或专题教程,比如可能专门讲解新的JPA(Java Persistence API)或者EJB 3.0的容器服务,如依赖注入、声明式事务管理等。 4. **EJB3.rar** - 这个RAR文件可能包含源...
**ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...
在EJB3.0的第一个"Hello, World"项目中,我们将学习如何创建和配置一个简单的EJB组件。首先,我们需要了解EJB的基本概念。EJB分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...
### 第一章 前言 1.1 本教程适合人群 本教程主要面向已经具备Java基础知识的初学者,特别是对Java EE感兴趣的开发者。EJB3.0的学习者应该熟悉Java编程,理解面向对象的概念,并对分布式计算有一定的了解。本教程将...
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
EJB3.0简介** EJB3.0是EJB规范的第三个主要版本,其目标是降低开发复杂性,提高开发者效率。这一版本引入了注解(Annotation)驱动的编程模型,减少了XML配置文件的使用,使得开发过程更加直观和简洁。 **2. EJB...
**企业级JavaBeans(EJB)3.0第五版**是Java平台上用于构建可扩展、安全和事务处理的服务器端应用程序的重要技术。EJB规范旨在简化开发过程,提高生产力,并提供一套标准的服务,如持久性、分布式计算和安全性,使得...
《精通EJB 3.0第四版》是针对企业级JavaBeans(Enterprise JavaBeans,简称EJB)技术的一本深入指南,特别关注EJB 3.0版本的特性与实践。EJB是Java平台企业版(Java EE)的核心组件之一,用于构建可扩展、安全且事务...
例如,无状态会话Bean在第一次请求时被创建,之后的请求会被同一个实例服务,直到容器决定回收该实例。 **4. 事务管理** EJB 3.0支持声明式事务管理,开发者可以通过`@TransactionAttribute`注解来指定事务的属性...
Enterprise JavaBeans(EJB)是Java平台上用于构建企业级应用的组件模型,EJB3.0是其第三个主要版本,它在设计上进行了许多重大改进,使得开发更加简化,提高了生产力,并且降低了学习曲线。EJB3.0的出现是为了应对...
### 第一章:EJB 3.0概述 本章将全面介绍EJB 3.0的新特性,包括但不限于注解、容器管理的持久化、轻量级事务管理和消息驱动bean的简化。通过对这些新特性的讲解,读者可以理解EJB 3.0如何简化了企业级应用的开发...
2. **创建第一个EJB**:通过一个简单的例子,展示如何使用注解创建一个无状态Session Bean,并进行调用。 3. **实体Bean与JPA**:讲解如何定义实体类,配置JPA,以及如何进行CRUD(创建、读取、更新、删除)操作。 ...