EJB初体验-概述

一、什么是EJB

EJBEnterprise JavaBeans)是使用java语言构造可移植的、可重用的和可伸缩的业务应用程序的平台。从技术上来说,EJB不是一种产品,而是Sun在Java EE中定义的一种规范,该规范制定了一系列的API。

下图是EJB提供的服务:

 


EJB初体验-概述_第1张图片

二、EJB组件类型:

EJB组件有三种类型:Session Bean、Message Drive Bean和Entity Bean


1.Session Bean 用于实现业务逻辑,分有状态的和无状态的。

当客户端请求时,容器会选择其为客户端服务,可以直接访问数据库,但更多通过Entity Bean进行访问。

(1)有状态会话Bean:会把请求同特定的客户联系起来,在客户和bean之间 建立一种一对 一的关系。例如淘宝网的购物车就是一个有状态的会话Bean。用户往购物车里加入商品,输入地址信息然后提交订单,购物车Bean维持状态,因而它知道这些变量都关联某一特定用户。 

(2)无状态会话Bean:并不知道客户或者涉及请求的上下文,从而使其成为单一请求的工具。例如:一个用户在Google中搜索关键字“Java”,客户应用程序联系一个无状态会话bean,给其传递参数,这个bean访问数据库,匹配符合检索条件的条目,并把记录传递给客户端,Bean不保留交互信息。因此,多个客户程序可以同时访问无状态会话Bean。


2.Entity Bean :表示会话终止之后持久存在的业务对象或者数据。通常作为数据库中的单一记录存在。

注意:实体Bean是EJB1.X和EJB2.X中的组件,在EJB3.X中,已经被JPA所代替。


3.Meassage Drive Bean :会话Bean和实体Bean都是以同步方式为EJB客户提供服务。客户发出请求然后等待Bean发回结果。 消息驱动Bean,采用Java消息服务JMS(Java Messaging Service),异步通信的方式,使得客户和Bean都无须依赖对方的直接响应。


三、EJB的发展史


EJB1.0:

最初版本支持有状态和无状态服务器对象(会话Bean),以及可选支持实体Bean。

优点:提供可移植性和远程特性

缺点:远程基础结构和按值传递的语义的开销大。


EJB1.1: 

要求支持实体Bean,引入XML部署描述文件


EJB2.0 

引入本地接口弥补远程接口造成的开销和按值传递的缺陷。

引入消息驱动Bean,参与异步消息系统

引入EJB查询语言EJB QL


EJB2.1

添加web服务支持

允许会话bean暴露接口

添加计时器服务

扩展EJB QL功能

引入XML schema替换 ejb-jar.xml部署文件的DTD。


EJB3.0

最重要的改动是实体Bean被替换为POJO,可以运行在EJB容器的外部

会话Bean不再需要主接口或专有的组件接口。


EJB3.1

进一步简化开发模型,最大优势声明横切方面。


总结:一说到EJB给人感觉很高大尚,并且很神秘。虽然这次项目中用到了EJB,但是目前对它的理解还是停留在神秘的阶段。通过这一个多月的项目学习, EJB给我的感受就是它封装了系统的业务逻辑,放到一个组件中,并且将这个组件部署到一个服务器上运行。



你可能感兴趣的:(EJB初体验-概述)