企业 Bean 开发最佳实践
设计和开发企业 Bean 时,请使用下列准则。
- 使用无状态会话 Bean,以作为业务逻辑的入口点使用。
- 实体 Bean 应当使用容器管理的持久性。
- 在Enterprise JavaBeans (EJB) V2.x 及更高版本环境中,使用本地接口改进同一 Java 虚拟机中的企业 Bean 之间的通信。
本地调用避免 RMI/IIOP 的系统开销并使用按引用传递语义而不是按值传递。对于每个调用,调用者和被调用者 Bean 共享自变量状态。EJB 2.x 及更高版本的 Bean 可以同时包含本地和远程接口,但通常只包含其中一种。
- 对于远程客户机的通信,提供远程和远程 Home 接口。对于本地客户机(如,servlet、实体 Bean 和消息驱动的 bean)的通信,提供本地和本地 Home 接口。
用于容器管理的持久性的成批命令
从 JDBC 2.0 上,PreparedStatement 对象维护一个可以成批提交的命令的列表。对于所有成批持久性请求,只有一个数据库往返而不是多个数据库往返。
您可以对 EJB 容器受管持久状态 (CMP) 启用此功能。这样做时,运行时会延迟 ejbStore/ejbCreate/ejbRemove 或等效的数据库持久性请求 (insert/update/delete) 直到需要它们。可以在事务结束时,或在需要刷新与此 EJB 类型相关的 finder 方法时执行此任务。最终发生持久性操作时,运行时积累数据库请求,并且使用 JDBC PreparedStatement 批处理操作对多行相同的操作调用单个 JDBC。
产品可以使您使用组装工具执行相同的设置。
延迟创建容器管理的持久性
对于 ejbCreate 期间的 CMP,容器可以在数据库中立即创建实体的说明,或稍后创建。
您可以从 EJB CMP 端开启此选项。选择此选项时,运行时推迟 ejbCreate 或等价的数据库持久状态请求,直到需要时再创建。可以在事务结束时,或在需要刷新与此 EJB 类型相关的 finder 方法时执行此任务。通过此延迟,您可以将对新创建实体的两次操作(插入和更新)往返减为一次(插入)。
产品可以使您使用组装工具执行相同的设置。