`

基于SSH开发架构的重新分层

ssh 
阅读更多
现代的企业开发中,越来越多地引入了多层架构设计模式。Struts+Spring+Hibernate (一下简称为SSH)就是其中之一,SSH架构是当前非常火的架构,很多金融、电信项目,大型门户网站均选择该架构作为业务支撑架构,开发流程也已经非常成熟。但是该结构开发起来,依旧存在一些问题。分析这些问题,得先从SSH架构的组成说起。

SSH为Struts+Spring+Hibernate的组成方式,Struts实现MVC,Spring负责架构的结合,Hibernate进行数据的持久化。通常其分层开发的结构图(以一个业务新增为例)如下:

这样的结构,满足了一般的业务需要,但是对于当前日益复杂化的WEB2.0的开发,却存在不少问题,归纳起来主要有以下几点的不足:

A)DAO和服务层容易出现职责不明,由于按照MVC逻辑,业务代码应该写在Struts Action里,但是其事务的提供,却是配置在Service层。为了一组在逻辑上完整的数据操作业务逻辑,需要涉及两个层(Serveice、 Action)来进行编写,遇到判断的情况下,为了保证完整的事务操作,则需要将业务代码移到Service层完成,而通常习惯了在Struts Action里调用多次Service而产生多个事务而在出现Exception时导致出错时操作之前调用的Service事务的业务数据没有回滚。

B)当需要返回的数据供AJAX使用,操作JSON或XML的的大量使用时。开发起来会很费力,一段同样的业务代码,为了使用AJAX和XML可能需要重新编写一次,或者在同一个ACTION里通过标志来判断,对分层结构造成了比较糟糕的破坏。如果设计得不好,为了使用JSON和XML还得额外增加大量的配置,严重降低了开发效率。

因此,为了克服这些缺点,本人对于SSH架构,进行了实现了重新的分层,共享了业务代码。简化了开发、增强了与AJAX技术、MXL技术的结合。提供了一种更高效的开发模式。

其开发的结构图如下:

看到这个架构图有人可能会问,Struts Action类的编写去哪了呢?答案正是这个架构的优点,由于业务代码统一实现IbusinessService接口,使得只需要相对固定的几个 Struts Action类调用Service层的方法,便可以完成工作。包括JSON格式输出,XML输出及WebService输出均调用Service层方法来完成功能。这样便实现了业务代码的分离,以及与前端框架的极大解耦。
分享到:
评论

相关推荐

    SOA-SSH分层架构的设计与应用.doc

    SSH(Struts、Spring、Hibernate)是一种常见的Java Web应用程序开发架构,主要用于构建高效、可扩展且易于维护的Web应用。这个架构是基于J2EE平台的轻量级框架组合,通过将表现层、业务逻辑层和数据持久层有效地...

    基于ssh的购物系统

    SSH(Struts + Spring + Hibernate)是一种经典的Java Web开发框架组合,广泛应用于企业级应用,特别是电子商务领域,如本项目“基于SSH的购物系统”。这个系统利用SSH的优势,实现了高效、稳定且功能丰富的购物平台...

    基于SSHI架构的开发平台技术方案

    1. **基于Spring Framework的分层管理**:通过清晰的分层架构,如Service、DAO、Controller等,确保了代码的高内聚低耦合,易于维护与扩展。 2. **Spring Security3的安全权限管理**:自定义登录认证、URL访问控制...

    基于SSH2开发的水果店管理系统

    本项目“基于SSH2开发的水果店管理系统”虽在前端设计上有所欠缺,但在后端架构上展现出了SSH2的强大功能和规范性,为初学者提供了理想的实践平台。下面将详细介绍SSH2框架及其在本项目中的应用。 首先,Struts2是...

    基于SSH框架的影院网上订票系统

    【基于SSH框架的影院网上订票系统】是一个典型的Web应用程序,它利用了Spring、Struts2和Hibernate这三大主流开源框架来构建。SSH框架的整合提供了高效、灵活且可扩展的开发环境,使得系统能够快速地实现各种业务...

    SOA-SSH分层架构的设计与应用word版本.docx

    #### 三、SOA-SSH架构分层实现 SOA-SSH架构通常被划分为三个层次:表现层、业务逻辑层和数据持久层。 1. **表现层**:该层主要由Struts框架实现,负责处理用户的输入请求,并向用户展示数据。Struts通过Action组件...

    基于SSH的基础架构设计.doc

    总结来说,基于SSH的基础架构设计是一种成熟的Java Web开发解决方案,它利用Struts2处理请求和响应,Spring管理对象并提供事务控制,以及Hibernate简化数据库操作。通过合理的模块划分和注解配置,可以有效地提高...

    基于ssh架构的学生成绩管理系统.pdf

    根据提供的文件内容,我们可以看出这份文档介绍了一个基于SSH(Struts2, Spring, Hibernate)架构的学生成绩管理系统。SSH是一种流行的Java EE应用框架组合,用于简化企业级应用的开发。 ### 知识点1:SSH架构概述 ...

    SOA-SSH分层架构的设计与应用word版本.pdf

    SSH则是Java开发中的一种常见分层架构,由Struts、Spring和Hibernate三个开源框架组成。 1. **Struts框架**: Struts是基于MVC(Model-View-Controller)设计模式的Web应用框架,负责处理用户界面与业务逻辑之间的...

    基于SSH架构的社区卫生管理系统设计与实现

    ### 基于SSH架构的社区卫生管理系统设计与实现 #### 一、引言与背景 随着社会的进步和发展,人们对医疗服务的需求也在不断提高。社区卫生服务作为基础医疗的重要组成部分,在提供基本医疗服务方面扮演着越来越重要...

    基于SSH的OA系统

    4. **OA系统架构**:基于SSH的OA系统通常采用三层架构,即表现层、业务逻辑层和数据访问层。表现层负责用户界面,业务逻辑层处理业务规则和流程,数据访问层负责与数据库的交互。这种分层设计使得系统结构清晰,易于...

    基于SSH的高校学生管理系统设计与实现

    通过采用基于SSH技术架构的高校学生管理系统,不仅可以提高系统的开发效率和可维护性,还能够增强系统的可扩展性。这种架构方式对于构建复杂的企业级Web应用具有重要意义。实际应用结果显示,基于SSH技术架构的高校...

    Anynote基于ssh2的个人信息管理系统

    1. **模块化设计**:SSH2的分层架构使得各组件职责分明,易于维护和扩展。 2. **松耦合**:Spring的依赖注入特性降低了组件间的耦合度,增强了代码的可复用性。 3. **事务管理**:Spring的事务管理功能确保了数据...

    基于ssh的酒店房间预订系统

    5. **系统设计与分层**:基于SSH的酒店房间预订系统通常采用三层架构,即表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层负责展示用户界面,业务逻辑...

    基于ssh的贴吧系统

    这个“基于SSH的贴吧系统”项目是利用这三个框架集成开发的一个在线讨论平台,类似于百度贴吧,允许用户创建主题、发布帖子、进行互动交流。 1. **Struts2**:Struts2是一个开源的MVC(Model-View-Controller)框架...

Global site tag (gtag.js) - Google Analytics