EJB设计模式概述——讲解EJB设计模式的重要性及常用的模式
通常项目中,客户端往往需要频繁的对服务器端数据进行操作。当采用实体EJB作为数据的抽象层时,如果直接让客户端程序与实体EJB交互,会产生实现一个业务需求便需要大量的EJB属性操作(如下图1)。这直接导致如下问题:网络负载大(远程客户端时)、并发性能低、客户端与服务器端关联度大、可重用性和可维护性差、性能 因此有必要在客户端与实体EJB层间加入Session EJB层,在Sessino EJB中实现商业逻辑并封装对实体EJB的操作。 【EJB设计模式概述】 EJB(Enterprise JavaBeans)设计模式是解决在Java EE平台中使用EJB组件遇到的问题和挑战的一种策略。这些模式旨在优化系统性能、可扩展性、可维护性,以及提高组件的重用性。在大型、复杂的项目中,尤其在团队协作的环境下,良好的EJB设计模式显得至关重要。 一、设计模式的重要性 1. **性能提升**:设计模式可以帮助减少网络负载,提高并发处理能力,从而提升整体系统性能。 2. **可扩展性**:通过合理的设计,系统能够轻松适应新需求和功能的添加。 3. **可维护性**:设计模式确保代码结构清晰,降低组件间的耦合度,便于后期的修改和维护。 4. **组件重用**:模式化的组件设计提高了代码的复用性,减少了重复劳动。 5. **开发效率**:遵循一定的设计模式,开发者可以更高效地理解、开发和测试代码。 二、常见EJB设计模式 1. **Session Facade模式** Session Facade模式是为了解决客户端直接与实体EJB交互带来的问题,如网络负载大、并发性能低和可维护性差。通过在客户端和实体EJB之间引入Session EJB层,可以封装商业逻辑,调用实体EJB的本地接口,降低网络通信成本,提高并发性能,并简化客户端代码。同时,它有助于隔离商业逻辑和数据,便于维护和扩展。 应用注意事项: - 避免Session EJB过于庞大,应根据功能拆分为多个小的EJB。 - 尽量让实体EJB负责数据结构的实现,避免直接的数据库操作。 - 对于通用服务(如权限检查),可以封装在Java类中,减少代码重复。 2. **Message Facade模式** Message Facade模式适用于异步调用场景,当一个请求需要操作多个EJB且不需要立即返回结果时。它通过Message-Driven Bean来处理这些请求,解决了Session Facade模式中客户端等待时间长和系统可靠性低的问题。然而,Message-Driven Bean没有直接返回值,结果通知需通过其他机制,且异常处理较为复杂。 3. **EJB Command模式** EJB Command模式减轻了Session EJB的重量,将商业逻辑封装在独立的Command Bean中,降低了对EJB组件的依赖,提高了开发、测试和部署的效率。Client-Side Routing Logic负责请求转发,使得客户端与服务器端的交互更加简洁。 通常,Command Bean包括getter、setter和execute方法,而Client-Side Routing Logic可以跨项目重用,其路由规则可根据需求灵活配置。 总结来说,EJB设计模式是Java EE开发中的重要工具,它们帮助开发者构建更高效、可维护的系统。理解并熟练运用这些模式,对于提升项目质量、降低开发成本具有显著效果。在实际工作中,开发者可以根据项目需求选择合适的模式,甚至结合多种模式,以实现最佳的设计方案。
剩余16页未读,继续阅读
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量