EJB 3.1从入门到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 概述

1.1 EJB的发展历史

EJB(Enterprise Java Bean, 企业Bean)是生成业务应用的主要分布式组件模型,是J2EE体系的核心部分。EJB使业务逻辑实现与系统级服务分开,从而使开发者能够轻松构建企业级分布式组件应用。从1998年EJB 1.0到现在的最高版本EJB 3.1,EJB得到了很好的普及和发展。首先让我们简单回顾一下EJB的发展历史。

(1)EJB 1.0

1998年3月在San Francisco召开的JavaOne98开发者大会上,Sun公司正式发布了EJB 1.0,这是EJB的第一个版本。该版本开始支持有状态和无状态的服务器对象(称为会话Bean),这也是最早的会话Bean,并且支持持久化域对象(称为实体Bean)。为了兼容性和远程访问,EJB 1.0提供了良好的分布式支持功能,它允许通过远程接口来远程调用EJB中的业务方法。正是由于它提供了一组远程访问的规范,导致远程也需要部署基础架构,加大了系统的开销,影响性能。

(2)EJB 1.1

EJB 1.1的发布对1.0版本中的一些特性做了补充说明和改进,其中主要引入了XML格式的部署文件,使XML配置文件以声明的方式来对原数据进行配置,而不是像1.0版本那样需要一个单独的class文件来存储。

(3)EJB 2.0

EJB 2.0通过引入本地接口的概念和措施,解决了以前版本中强制远程访问所带来的系统开销和性能下降的问题,它允许开发者自己决定是否要让EJB组件支持远程访问,如果EJB组件不需要支持远程访问,则让Bean实现类实现本地接口即可,这就可以避免远程访问所带来的系统开销和性能下降。EJB 2.0最大的贡献就是提出了消息驱动Bean,能够参与异步消息系统,从而解决了EJB应用的异步调用问题。

(4)EJB 2.1

EJB 2.1增加了Web Service的支持,并兼容SOAP协议,允许会话Bean暴露站点接口,从而更有利于异构系统的整合。不仅如此,EJB 2.1还加入了定时自动执行功能,可按照指定的时间或者时间间隔调用EJB的业务方法,这种定时功能非常方便地为系统提供任务高度的支持。除此之外,EJB 2.1还提供了扩展EJB QL的功能,并引入XML schema来替换定义ejb-jar.xml部署描述文件的DTD。

(5)EJB 3.0

EJB 3.0不是以前版本的修订和改良,而是与旧版本有截然不同的规范,其中最突出的特点是实体Bean模型被实体模型所取代,只保留了原有的Session Bean和消息驱动Bean。EJB 3.0的开发模式,极大地简化了EJB的开发模式,也优化了EJB技术本身,并降低了EJB的复杂性。EJB 3.0提供服务器解决方案的完整套装,包括持久化、消息、轻量型计划、远程处理、Web服务、依赖注入(Dependency Injection,DI)和拦截器。这就是说,我们不必花费很多时间寻找第三方工具并将其集成到应用程序中。此外,EJB 3.0提供与其他Java EE技术以及持久化层技术的无缝集成,比如,JDBC、Java事务API(Java Transaction API,JTA)、Java消息服务(Java Messaging Service,JMS)、Java验证和授权服务(Java Authentication and Authorization Service,JAAS)、JavaServer Pages(JSP)、servlet、JavaServer Faces(JSF)和Swing,等等。

(6)EJB 3.1

EJB 3.1的主要目标是使EJB尽可能简单,其核心思想就是要简化EJB架构,同时引入一些急需的新特性,目前已经作为JavaEE 6规范的一部分被发布,去掉了EJB 3.0繁琐的编程模型,而带给Java EE 6一个更简单的编程环境。