1,EJB是什么?
(1)定义:企业级JavaBean(Enterprise JavaBean),是服务器端的软件构件规范,是面向分布式、事务处理的企业级应用系统的构件。
(2)特点:
a)构件包含对企业数据进行操作的业务逻辑
b)构件实例由容器(应用服务器)在运行时创建并管理
c)构件在部署时可以通过编辑其环境入口而定制
d)各种公共服务信息被从构件类中剥离出来,使得服务信息可以在系统组装或部署时被管理。
e)客户对构件的访问通过容器间接进行
f)如果构件仅使用了EJB规范定义的服务,那么它可以被部署在任意应用服务器中
g)构件可以在不修改源代码、不重新编译的前提下,加入到一个应用系统中。
h)构件提供者必须定义构件的客户视图,即构件的对外接口。
2,构件是如何封装的?
一个构件的实现由一个或多个Java类构成。为便于构件的传送、分发,构件中的类以及对构件的描述信息一起被封装在扩展名为jar的文件中,是以zip格式压缩的文件。
(1)描述文件:ejb-jar.xml
(2)类型接口:Home Interface
(3)实例接口:Component Interface(Remote Interface)
(4)构件实现类:Java实现类
3,会话构件(Session Bean)
(1)定义:实现了业务逻辑及运行在服务器端的非持久性Java类。
(2)特征:
a)每个会话构件实例每次只能为一个客户服务。
b)不直接表示数据库中的共享数据,但可以访问、更新数据库中的共享数据。
c)生命周期较短。
d)当容器崩溃时,也随之消失,不可恢复。
(3)分类:
a)无态会话构件(Stateless)
b)有态会话构件(Stateful)
4,实体构件(Entity Bean)
(1)定义:表示的是存储在永久存储介质上的实体(例如数据库)的对象视图,或者是与应用系统中的信息直接对应的实体。
(2)特征:
a)一个实体构件实例可以为多个客户同时提供服务。
b)持久性,一旦操作结果生效,不会因时间的推移或系统的故障而失效,该结果对系统的其他部分可见
c)生命周期较长。
d)容器崩溃时,这些数据仍然存在,可以被恢复。
(3)分类:
a)构件管理持久性(BMP)
b)容器管理持久性(CMP)
5,消息驱动构件(Message-Driven Bean)
(1)定义:实现了一定业务逻辑的异步Java消息消费者。
(2)特征:
a)为单个客户发出的消息服务。
b)不直接表示数据库中的共享数据,但可以访问、更新数据库中的共享数据。
c)生命周期短。
d)当容器崩溃时,也随之消失,不可恢复。
e)无状态。




