【SSH2框架(理论篇)】--SSH2 Vs 经典三层
这几天一直在学习使用SSH2框架。对于框架本身的使用并非非常困难。相信经过多锻炼就行熟练的掌握框架的使用,让我匪夷所思的是在使用框架的时候感觉非常熟悉,好像在哪里用过似得。
就在某次查看代码的时候突然闪现了一个想法,SSH2框架和经典三层非常相似。当然经过翻阅资料发现我的想法还是有理论根据的,接下来将会证实该猜想。
一、SSH2初识
我们通常所说的SSH2框架事实上是有三种框架集成的。它们各自是基于MVC模式的Struts2框架和基于IoC模式的 Spring框架以及对象/关系映射框架Hibernate,之所以会产生这么框架是由于J2EE的诟病,由于J2EE的多层结构过于复杂,想要更加效率的开发大型的J2EE项目就必须运用其他的框架和设计模式来整合这样的多层结构提高软件的质量。
Note:框架一般具有即插即用的可重用性、成熟的稳定性以及良好的团队协作性。
想要深入了解SSH框架就必须来看看它的框架图。从它的框架图上来讨论分析它的运行过程。例如以下图为SSH框架的基本结构图。
系统的基本业务流程:在表示层中。首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response)。然后Struts依据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给对应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完毕业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中。则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据。并返回处理结果。
具体的内部框架的请求过程会在下篇博客中具体讨论。
二、SSH2 Vs 经典三层
先来回想下经典的三层架构,在开发时为了实现程序解耦的目的,我们把程序分成了三个层次。各自是显示层(User Show Layer)、业务逻辑层(Business
Logic Layer)、数据持久层(Data Access Layer)。这是最基础的开发架构,也就是将程序依照我们通常理解的那样拆分开,每一层仅仅专注一种事物,这样每一层仅仅要实现对应的接口就能非常好的减少了程序集之间的耦合。
Note:在有的教程中三层架构可能会有实体层(Entity
Layer),事实上它是三层中的參数。各层之间进行參数传递时须要採用的即为实体层中的表实体。
联系经典的三层我们不难看出SSH2框架的实现事实上就是经典的三层结构。仅仅只是在三层结构中的每一层中集成的是单独的框架,尤其是在表示层中採用的是基于MVC模式的Struts2来配置,当页面进行请求后Struts会依据配置文件(Struts2中为Struts2.xml)将ActionServlet接收到的Request请求托付给对应的Action处理。
然后在业务层中,管理服务组件的Spring IoC负责向Action提供业务模型(Model)组件等来完毕业务逻辑。
而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
结语
通过上面的对照不难发现事实上SSH2框架採用的是经典的三层模式。将J2EE分层结构进行了良好的整合,在开发时非常方便。可是对于每一个框架的内部运行机制没有做过多的讨论。相信在理解上可能会有非常多疑惑。为了解决疑惑,将会在下篇文章中重点讨论Struts、Spring、Hibernate框架的内部运行机制。
【SSH2框架(理论篇)】--SSH2 Vs 经典三层的更多相关文章
- 【SSH2(理论篇)】--Struts2配置具体解释
上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型事实上类似于经典的三层模式,在每一层中分别加入了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置 ...
- 【SSH2(理论+实践)】--Hibernate步步(一个)
前几个博客讨论SSH2该框架Struts,它代表层,集成封装.和使用WebWork作为核心处理,依赖映射是它的处理核心.在使用时需要Struts.xml配置相应Action和Interceptor够完 ...
- SSH2框架搭建 和 配置文件详解
-----------补充说明----------- 文章中所列出的struts2的2.2jar包已经不是最新的了,这个版本有严重漏洞, 现在最新版本为2.3.15,所以.你懂的http://stru ...
- ssh2框架搭建
原文:ssh2框架搭建 struts2+spring4.0+hibernate4.0 4.x版本与3.x版本有较大区别,要配置方法须要注意,用到的jar包如下 文件结构 src/application ...
- 游戏UI框架设计(一) : 架构设计理论篇
游戏UI框架设计(一) ---架构设计理论篇 前几天(2017年2月)看到一篇文章,国内王健林.马云等大咖们看好的未来十大最有"钱途"产业中,排名第一的就是"泛娱乐&qu ...
- SSH2框架实现注冊发短信验证码实例
这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调 ...
- MVC框架模式和Javaweb经典三层架构
一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(Vie ...
- 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md
前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
随机推荐
- Hadoop Web项目--Friend Find系统
项目使用软件:Myeclipse10.0,JDK1.7,Hadoop2.6,MySQL5.6.EasyUI1.3.6.jQuery2.0,Spring4.1.3. Hibernate4.3.1,str ...
- Node.js:NPM 使用介绍
ylbtech-Node.js:NPM 使用介绍 1.返回顶部 1. NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: ...
- java javax.annotation.Resource注解的详解
转自:https://www.jb51.net/article/95456.htm java 注解:java javax.annotation.Resource 当我们在xml里面为类配置注入对象时 ...
- window下安装git
- Java电子书下载地址
http://www.itpub.net/search.php?searchid=1660&orderby=lastpost&ascdesc=desc&searchsubmit ...
- 关于PHP中的SESSION技术
Session是服务器端技术,服务器在运行时可以为每一个用户创建一个其独享的session文件,所以用户在访问服务器web资源时,可以把各自的数据放在各自的session中,当用于再去访问该服务器中其 ...
- ajax获取跨域数据
1.效果图 2.源码 <%@ page contentType="text/html;charset=UTF-8" language="java" %&g ...
- JS排序之冒泡排序
冒泡排序的两种策略: <script>// 第一种思路:// 一个数组中的数据,拿第一个和剩下的依次进行对比,数值小的赋值给第一个,一轮比较过后,则数值小的放在最前边.// 第二轮比较,则 ...
- RecyclerView实现终极画廊效果 中间突出并且压住两侧布局
先给大家上个gif 要不然下面很枯燥 忘记原来在哪里看到了..... 这个效果我找了NNNNNN长时间,,,我认为凭我现在的能力 写出来需要好久 所以 退而求其次找大神写好的... 你们不要小看了这个 ...
- The AJAX response: XML, HTML, or JSON?
shared from: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html 1. 返回XML文档 对返回的XML ...