关于struts:详解SSH-框架中对象调用流程

5次阅读

共计 1935 个字符,预计需要花费 5 分钟才能阅读完成。

摘要: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 零碎中,对象之间的调用流程如下:

Struts——>Spring——>Hibernate

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

比方:

1.Spring 的配置文件 bean.xml

2.Struts 的配置文件 struts.xml

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

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。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0