Enterprise Bean 通过以下三种机制之一与容器交互:回调方法、EJBContext 接口或 JNDI。
回调方法:
每个 bean 都会实现 EnterpriseBean 接口的子类型,该接口定义了一些方法,称作回调方法
。每个回调方法在 bean 的生命周期期间向它提示一个不同事件,当容器要合用某个 bean、
将其状态存储到数据库、结束事务、从内存中除去该 bean 等操作时,它将调用这些方法来通
知该 bean。回调方法可以让 bean 在事件之前或之后立即执行内部调整。
EJBContext:
每个 bean 都会得到一个 EJBContext 对象,它是对容器的直接引用。EJBContext 接口提供
了用于与容器交互的方法,因此那个 bean 可以请求关于环境的信息,如其客户机的身份或事
务的状态,或者 bean 可以获取它自身的远程引用。
Java 命名和目录接口 (JNDI):
JNDI 是 Java 平台的标准扩展,用于访问命名系统,如 LDAP、NetWare、文件系统等。每个
bean 自动拥有对某个特定命名系统(称作环境命名上下文 (ENC))的访问权。ENC 由容器管
理,bean 使用 JNDI 来访问 ENC。JNDI ENC 允许 bean 访问资源,如 JDBC 连接、其它
Enterprise Bean,以及特定于该 bean 的属性。
本地接口表示组件的生命周期方法(创建、破坏、查找),而远程接口表示 bean 的商业方法
。远程和本地接口分别扩展 javax.ejb.EJBObject 和 javax.ejb.EJBHome 接口
EJB 对象和本地对象充当 bean 对象的代理,因为它们代表 bean 接收方法调用。EJB 对象主
要为 bean 业务方法充当代理;本地对象主要为 bean 生存周期方法充当代理。
会话 bean 通常具有以下属性:
代表单个客户机执行
可以是事务性的
可以更新共享数据库中的数据
生存期相对较短
其生存期通常就是客户机的生存期
任何持久性数据都由 bean 管理
可以依容器的判断予以删除
会在 EJB 服务器失败时被删除
实体 bean 通常具有以下属性:
代表数据库中的数据
是事务性的
允许多个用户共同访问
可以长期存在
持久性数据可以由容器管理
在 EJB 服务器失败后能继续生存
回调方法:
每个 bean 都会实现 EnterpriseBean 接口的子类型,该接口定义了一些方法,称作回调方法
。每个回调方法在 bean 的生命周期期间向它提示一个不同事件,当容器要合用某个 bean、
将其状态存储到数据库、结束事务、从内存中除去该 bean 等操作时,它将调用这些方法来通
知该 bean。回调方法可以让 bean 在事件之前或之后立即执行内部调整。
EJBContext:
每个 bean 都会得到一个 EJBContext 对象,它是对容器的直接引用。EJBContext 接口提供
了用于与容器交互的方法,因此那个 bean 可以请求关于环境的信息,如其客户机的身份或事
务的状态,或者 bean 可以获取它自身的远程引用。
Java 命名和目录接口 (JNDI):
JNDI 是 Java 平台的标准扩展,用于访问命名系统,如 LDAP、NetWare、文件系统等。每个
bean 自动拥有对某个特定命名系统(称作环境命名上下文 (ENC))的访问权。ENC 由容器管
理,bean 使用 JNDI 来访问 ENC。JNDI ENC 允许 bean 访问资源,如 JDBC 连接、其它
Enterprise Bean,以及特定于该 bean 的属性。
本地接口表示组件的生命周期方法(创建、破坏、查找),而远程接口表示 bean 的商业方法
。远程和本地接口分别扩展 javax.ejb.EJBObject 和 javax.ejb.EJBHome 接口
EJB 对象和本地对象充当 bean 对象的代理,因为它们代表 bean 接收方法调用。EJB 对象主
要为 bean 业务方法充当代理;本地对象主要为 bean 生存周期方法充当代理。
会话 bean 通常具有以下属性:
代表单个客户机执行
可以是事务性的
可以更新共享数据库中的数据
生存期相对较短
其生存期通常就是客户机的生存期
任何持久性数据都由 bean 管理
可以依容器的判断予以删除
会在 EJB 服务器失败时被删除
实体 bean 通常具有以下属性:
代表数据库中的数据
是事务性的
允许多个用户共同访问
可以长期存在
持久性数据可以由容器管理
在 EJB 服务器失败后能继续生存