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

开发 后端
现代的企业开发中,越来越多地引入了多层架构设计模式。Struts+Spring+Hibernate (一下简称为SSH)就是其中之一,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层方法来完成功能。这样便实现了业务代码的分离,以及与前端框架的极大解耦。

原文链接:http://blog.csdn.net/hsttmht/article/details/7425099

【编辑推荐】

  1. SSH2实现数据库和界面的分页
  2. Java通过SSH2协议运行远程程序
  3. 实现对 IBM Cloud 的安全 SSH 访问
  4. 深入浅出Java三大框架SSH与MVC的设计模式
  5. SSH 环境搭建完整教程
责任编辑:林师授 来源: hsttmht的博客
相关推荐

2023-08-02 08:51:46

服务架构分层架构

2021-09-06 14:52:17

MySQL存储架构

2019-12-10 10:59:11

分层架构项目

2023-06-16 13:34:00

软件架构模式

2017-10-15 14:36:10

互联网分层架构服务化

2020-08-11 09:43:28

分层架构互联网架构

2022-11-29 11:21:20

单体分层应用架构

2017-07-18 15:26:20

微服务化DevOps容器化

2019-12-16 08:08:39

六边形架构分层架构架构

2016-06-07 16:43:57

云计算混合云

2017-11-17 07:06:27

互联网分层架构APP

2023-05-31 08:41:23

分层架构对象模型

2014-01-06 11:23:54

Mesos设计架构

2017-11-08 13:31:34

分层架构代码DDD

2011-12-06 14:26:08

2021-06-17 07:47:03

软件架构分层

2009-05-06 09:40:04

LINQWEB开发构架

2019-10-21 09:32:48

缓存架构分层

2022-07-29 11:06:47

架构开发

2020-02-26 22:02:04

Istio架构连接
点赞
收藏

51CTO技术栈公众号