创建EJB组件
开发EJB时必须遵守某些规定--- 不管是会话或实体bean,都是由三个接口和类组成的:一个本地接口,一个远程接口,一个实现类。并且,这些接口与类必须包含需要的方法,方法要以特定的方式命名,有特定的返回类型,异常,诸如此类。
FORTE FOR JAVA企业版在许多方面简化了EJB的开发。由向导在开发过程中一步步的指引,向导不仅会显示当前处于开发过程的那个阶段,而且可以提示接下来的步骤。选择的选项不同,接下来的步骤提示相应会改变。
定义一个新的EJB
假设需要为一个应用程序创建多个EJB,首先我们会为这个应用程序新建一个包,以便把所有的bean都集中到一起。接着,在浏览窗内用鼠标右击包的名字,从弹出的上下文菜单(context menu)中选择要放置在包中的组件的所属类型的模板。例如,JSP, Java Servlet, JavaBeans, EJB 等。出于本文的需要,我们选择EJB组件中的会话bean,而不是实体bean。
选择EJB组件后,不管是会话bean还是实体bean,模板向导都会一步步指引我们创建特定的组件。图2显示了创建有状态会话bean时的向导屏幕。
图2:有状态会话bean的向导窗
在创建实体bean的向导中提供一个选项用于指定采取bean治理存储还是容器治理存储。一旦指定了实体bean的存储治理方式,向导会自动依据选择结果提示下一步的信息。
bean治理存储选项意味着开发者自行提供存储代码,这种情况下需要附加一步,也是唯一的一步就是指定bean的实现类与接口。若选择容器治理存储,向导会引导你完成附加的定义和映像存储字段的工作。假如实体bean建模的是已存在的数据库表,我们可以选择这个表,将bean字段映像表的列。另外也可以手工指定存储字段,或对于已存在的bean可以从它的主键Java类选择。
实现bean
确定bean类型之后,IDE 会生成组件必须包含的本地接口,远程接口和 bean的实现类。并且,这些接口与类又包含了所有需要的方法,(例如 ejbLoad, ejbStore, ejbActivate, ejbPassivate方法) 、上下文相关(context-related)的方法,以及create, find, and remove方法。这样有助于开发者将精力集中于实现bean的商务逻辑上。
为了进一步方便bean的开发过程,FORTE FOR JAVA企业版提供逻辑EJB(logical Enterprise JavaBeans).在浏览窗口中逻辑EJB用图标 表示,它为所有bean提供一个完整协调的视图,包括他们的接口,字段,方法等。由于bean的接口和实现紧密相连,使同一个方法在各处保持一致是很重要的。例如,假如在一个会话bean的home接口声明create方法,那就必须在实现类中提供相应的ejbCreate方法。在bean的remote接口声明的商务方法必须在bean的类中正确实现。
EJB的逻辑视图保证了FORTE FOR JAVA企业版自动保持bean的所有的相关组件之间的同步。FORTE FOR JAVA企业版很灵活,它不但可以直接加工单个的组件,例如实现类或远程接口,也可以通过逻辑视图(logical view)集体进行。两种方式下,IDE 都能保证其中的协调性。举例来说,FORTE FOR JAVA企业版可以保证一个新方法,不论是从bean的逻辑视图还是它的远程接口处定义的,都会在bean的类里正确地显示出来。假如你想在bean的类里包含一个方法,却不想让此方法在远程接口中显示出来的话,务必直接将此方法添加到bean的实现类中。这样处理的方法是不会自动加入远程接口的。
图3展示了一个实体bean产品逻辑EJB,还有home接口、remote接口还有beans类。这里的逻辑EJB,即ProdUCt.entejb在浏览器窗口中展开了。由此可以看出,从逻辑EJB可以访问bean类和它的两个接口。也可以看见实体bean的create, find, 和 business 方法,以及它的容器治理存储的字段。另外,鼠标右击bean的逻辑名将弹出包含可执行操作的上下文菜单(如图3所示)。菜单中可执行的命令例如:察看部署描述符(deployment descriptor),验证(validate)和编译bean的所有类与接口,创建新方法(包括create, find, and business方法),生成EJB模块,创建测试程序。
图 3: 使用一个逻辑 Enterprise Bean
标签: