SSH框架mvc三层架构

这几天一直在学习使用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框架的内部执行机制。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目是作者当时花费了3个多月的时间完成的.在此拿出来给大家分享,请珍惜作者的劳动成果,用心研读! JEEBBS最新版本采用hibernate3+spring mvc+spring3+freemarker技术架构,重新设计了jeebbs,重新架构后的JEEBBS性能得到了很大的提升,功能相比jeebbs v1.0也丰富了许多。 jeebbsV4.0功能列表 1、论坛APP 2、登录更改shiro登录认证以及记住我 3、在线人数、时长统计 4、提供用户接口、其他系统用户接口调用设置以及接口管理(可与jeecms系列软件无缝对接实现单点登录) 5、用户自定义字段 6、禁用ip、id发帖、回帖 7、注册成功自动登录 8、设置在线活跃度等级 9、手机模板方案设置 10、最近登录过(三天,一周、一个月、三个月、半年)查询 11、类似微信团队号(与用户沟通账户以及推送系统消息) 12、QQ登录 jeebbsV4.0修复以及完善部分 1.权限的访问的地址链接 2.图片太大显示不全问题 3.会员组设置附件上线没有用以及其他相关设置无效 4.附件上传经常上传不了 5.发帖文字内容不能居中、居左、居右 编辑器字体、大小、插入图片、排序列表无效、左浮动、右浮动 6.用户自定义头像错误 7.注册如果发送邮件激活的方式出错(返回页面错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session) 8.禁止用户后不允许登录、发帖、回帖等 9.后台会员搜索中文名搜索乱码 10.注册会员的时候提示邮箱的格式不对 11.登录设置邮箱密码文本框改成密码框

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值