分类: Java
2006-03-03 18:42:23
简单介绍一下EJB 有关Enterprise Beans 开发enterprise bean必须完成的任务。这些任务包括: 定义和编写Enterprise bean类:这是Enterprise bean内部应用逻辑的实现。 编写Enterprise bean的远程remote接口类。 编写Enterprise bean的本地home 接口类。 说明主键类,主键类只是对于Entity bean才需要的。在Enterprise bean的配置描述器中指定主键的名字。 Enterprise beans提供者定义了远程(Remote)接口和本地(home)接口,实现了Enterprise bean类本身。Remote接口中提供了客户调用Enterprise bean实现的应用逻辑函数的接口。而home接口提供了产生和定位remote接口实例的方法。 在Enterprise bean本身类的实现,本地home接口,远程remote接口之间并没有正式的联系(例如继承关系)。但是,在三个类里面声明的方法却必须遵守EJB里面定义的规范。例如: 你在Enterprise bean里面声明了一个应用程序的方法或者说应用逻辑。也在beans的remote接口中声明了这个方法,那么,这两个地方必须要同样的名字。Bean的实现里面必须至少有一个Create()方法:ejbCreate()。但是可以有多个带有不同参数的create()方法。在home接口中,也必须有相同的方法定义(参数的个数相同)。EjbCreate()方法返回的一个容器管理的持久对象。它们都返回一个容器管理持久性的主键值。但是,在home的相应的Create()方法中返回值的类型是remote接口。 注意:实体bean的实现的ejbCreate()方法有点不同。实体bean可以不定义ejbCreate()方法。如果实体只是通过应用程序或通过数据库管理程序的的途径被加到数据库中,实体bean就省略了ejbCreate()方法。ejbCreate()返回的值是主键类型的。如果ejbCreate()方法是容器管理持久性的实体bean的方法,它的返回值就是NULL类型。如果实体bean实现了Bean管理的持久性,ejbCreate()方法就返回值类型就是主键类型。在以后,我们会详细讨论它们的不同。 Entereprise Bean提供者定义了Enterprise bean的语义。容器的任务是把home接口,remote接口和Enterprise bean的实现类结合起来。保证在编译时和运行时,remote接口和bean的实现类是相对应的。 Enterprise bean的继承关系: Enterprise bean的实现类,remote接口,home接口都要从不同的基类中继承下来。Home接口是从javax.ejb.EJBHome中继承过来的。Remote接口从javax.ejb.EJBObject中继承而来。Remote和home接口的基类都是javax.rmi.Remote。 一个会话bean必须实现基类javax.ejb.SessionBean。而实体bean必须实现基类javax.ejb.EntiyBean。这些EJB的基类都是从javax.ejb.EnterpriseBean继承而来。而javax.ejb.EnterpriseBean又是从java.io.Serializable继承而来。 |