• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

详解SSH 框架中对象调用流程

互联网 diligentman 1周前 (02-21) 6次浏览

摘要:SSH=Struts+Spring+Hibernate

SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。

SSH框架的系统是基于MVC的。Struts 是一个很好的MVC框架,主要技术是Servlet和Jsp。Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明。基于Struts开发可以简化开发难度,提高开发效率。

Spring 提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。

Hibernate 是用来持久化数据的,提供了完全面向对象的数据库操作。Hibernate对JDBC进行了非常轻量级的封装,它使得与关系型数据库打交道变得非常轻松。

在Struts+Spring+Hibernate系统中,对象之间的调用流程如下:

详解SSH 框架中对象调用流程

 Struts——>Spring——>Hibernate

 JSP——>Action——>Service——>DAO——>Hibernate

比如:

1.Spring的配置文件bean.xml

详解SSH 框架中对象调用流程

详解SSH 框架中对象调用流程

详解SSH 框架中对象调用流程

2.Struts的配置文件 struts.xml

详解SSH 框架中对象调用流程

3.Hibernate其中的一个配置文件:

详解SSH 框架中对象调用流程

Spring框架的作用和好处:

Spring框架提供了一个容器,该容器可以管理应用程序的组件,还提供了IoC和AoP机制,实现组件之间解耦,提高程序结构的灵活性,增强系统的可维护和可扩展性。

在SSH整合开发中,利用Spring管理Service、DAO等组件,利用IoC机制实现Action和Service,Service和DAO之间低耦合调用。利用AoP机制实现事务管理、以及共通功能的切入等。

功能是整合,好处是解耦。

Hibernate中操作并发处理(乐观锁和悲观锁)

Hibernate框架可以使用锁的机制来解决操作并发

a.悲观锁

在数据查询出来时,就给数据加一个锁,锁定。这样其他用户再执行删、改操作时不允许。当占用着事务结束,锁会自动解除。

Hibernate采用的是数据库锁机制实现悲观锁控制。

缺点:将并发用户操作同步开,一个一个处理。当一个用户处理时间比较长时,效率会比较低。

b.乐观锁

允许同时更新提交,但是最快的会成功,慢的失败。

在记录中追加一个字段值,用该字段值当做版本。当最先提交者提交后,会自动将版本字段值提升,这样其他用户提交,会发现版本低于数据库记录目前版本,因此抛出异常提示失败。

特点:允许用户同时处理,但只能有一个成功,其他失败,以异常方式提示。

SSH工作流程

a.启动服务器,加载工程以及web.xml.

(实例化Lisener,Filter等组件,将Spring容器和Struts2控制创建)

b.客户端发送请求,所有请求进入Struts2控制器。控制器根据请求类型不同,分别处理。

(action请求,*.action会进入struts.xml寻找配置.

其他请求,*.jsp会直接调用请求资源,生成响应信息)

c.Struts2控制器根据配置调用一个Action对象处理。

整合方法一:将Action交给Spring容器

(Action对象由struts2-spring-plugin.jar插件提供的

StrutsSpringObjectFactory负责去Spring容器获取)

整合方法二:将Action置于Spring容器之外

(Action对象由struts2-spring-plugin.jar插件提供的

StrutsSpringObjectFactory负责创建,然后到Spring容器中寻找与Action属性匹配的Bean对象,给Action对象注入。(默认采用名称匹配规则)

d.Struts2控制器执行defaultStack拦截器、Action对象、Result等组件处理.

e.执行Action的execute业务方法时,如果使用Service或DAO采用Spring的IoC机制调用。

f.执行Result生成响应信息,执行后续拦截器处理

g.将响应信息输出。

本文分享自华为云社区《SSH 组合框架模式小知识分享》,原文作者:Jack20 。

点击关注,第一时间了解华为云新鲜技术~


程序员灯塔
转载请注明原文链接:详解SSH 框架中对象调用流程
喜欢 (0)