ssh介绍

上传人:xzh****18 文档编号:42045679 上传时间:2018-05-31 格式:DOC 页数:6 大小:103KB
返回 下载 相关 举报
ssh介绍_第1页
第1页 / 共6页
ssh介绍_第2页
第2页 / 共6页
ssh介绍_第3页
第3页 / 共6页
ssh介绍_第4页
第4页 / 共6页
ssh介绍_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《ssh介绍》由会员分享,可在线阅读,更多相关《ssh介绍(6页珍藏版)》请在金锄头文库上搜索。

1、ssh 框架结构分析框架结构分析 最近在弄 j2ee,发现还是学到了很多东西,心情 happy 啊!昨天看到了一个文章是关于 ssh 的,就弄下来了,后面加点自己的东西,很感谢网上的各位前辈的总结。一个 spring2.5+hibernate3.2+struts2.0 组合框架,使用 spring 的的 IoC 来管理应用的的所有 bean,包括 struts2 的的 action,充分发挥了 spring轻量级框架的的优势。 摘摘 要要:针对当前 Web 应用程序开发面临的问题,结合目前比较流行的开源框架 Spring、Struts 和 Hibernate,提出了一种开发 J2EE Web

2、应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的 Web 应用程序。并且,通过案例具体说明了如何将这一方案应用到实际项目中。关键词关键词:J2EE MVC Struts Spring Hibernate 大型企业级 Web 应用系统的开发通常要求有一个良好的软件架构、便于协作开发和扩展升级,而传统的开发模式不能很好地满足这些要求。本文针对当前 Web 应用程序开发面临的问题,结合目前比较流行的开源框架 SSH(Spring、Struts、Hibernate),提出一种开发 J2EE 企业级 Web 应用的轻量级解决方案,并通过案例具体说明如何将这一方案应用到实际

3、项目中。1 框架技术框架技术著名的软件大师 Ralph Johnson 对框架(Framework)进行了如下的定义: 框架是整个系统或系统的一部分的可重用设计,由一组抽象的类及其实例间的相互作用方式组成1。框架一般具有即插即用的可重用性、成熟的稳定性以及良好的团队协作性。J2EE 复杂的多层结构决定了大型的 J2EE 项目需要运用框架和设计模式来控制软件质量。目前,市场上出现了一些商业的、开源的基于 J2EE 的应用框架,其中主流的框架技术有:基于 MVC 模式的 Struts 框架和基于 IoC 模式的 Spring 框架以及对象/关系映射框架 Hibernate 等。1.1 表示层框架表

4、示层框架 StrutsStruts 是一个在 JSP Model2 基础上实现的 MVC 框架,主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用性2。Struts 框架的体系结构如图 1 所示。 图一图一下面就图 1 所示的体系结构图分析 Struts 框架中的 MVC 组件。(1)视图:视图部分主要由 JSP 页面组成,其中没有流程逻辑、业务逻辑和模型信息,只有标记。Struts 自身包含了一组标记库(TagLib),这也是 Struts 的精华之一,灵活运用它

5、们可以简化 JSP 页面的代码,提高开发效率。(2)控制器:Struts 中的 Controller 主要是其自身提供的 ActionServlet。ActionServlet 接收所有来自客户端的请求并根据配置文件(struts-config.xml)中的定义将控制转移到适当的 Action 对象。(3)模型:Struts 没有定义具体 Model 层的实现,Model 层通常是和业务逻辑紧密相关的,有持续化的要求。目前在商业领域和开源世界,都有一些优秀的工具可以为 Model 层的开发提供便利。1.2 业务逻辑层框架业务逻辑层框架 SpringSpring 是一个解决了许多 J2EE 开发

6、中常见问题并能够替代 EJB 技术的强大的轻量级框架。这里所说的轻量级指的是 Spring 框架本身,而不是指 Spring 只能用于轻量级的应用开发。Spring 的轻盈体现在其框架本身的基础结构以及对其他应用工具的支持和装配能力。与 EJB 这种庞然大物相比,Spring 可使程序研发人员把各个技术层次之间的风险降低。Spring 框架的核心是控制翻转 IoC(Inversion of Control)/依赖注入 DI(Dependence Injection)机制。IoC 是指由容器中控制组件之间的关系(这里,容器是指为组件提供特定服务和技术支持的一个标准化的运行时的环境)而非传统实现中

7、由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”3。DI 是对 IoC 更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中3。Spring 采用设值注入(使用 Setter 方法实现依赖)和构造子注入(在构造方法中实现依赖)的机制,通过配置文件管理组建的协作对象,创建可以构造组件的 IoC 容器。这样,不需要编写工厂模式、单例模式或者其他构造的方法,就可以通过容器直接获取所需的业务组件。Spring 框架的结构如图 2 所示。 图 2Spring 框架由七个定义明确的模块组成,且每个模块或组件都可以单独存在,或者与其他一个或多个

8、模块联合实现。Spring Core Container 是一个用来管理业务组件的 IoC 容器,是 Spring 应用的核心;Spring DAO 和 Spring ORM 不仅提供数据访问的抽象模块,还集成了对 Hibernate、JDO 和 iBatis 等流行的对象关系映射框架的支持模块,并且提供了缓冲连接池、事务处理等重要的服务功能,保证了系统的性能和数据的完整性;Sprnig Web 模块提供了 Web 应用的一些抽象封装,可以将 Struts、Webwork 等 Web 框架与 Spring 整合成为适用于自己的解决方案。Spring 框架可以成为企业级应用程序一站式的解决方案,

9、同时它也是模块化的框架,允许开发人员自由地挑选适合自己应用的模块进行开发。Spring 框架式是一个松耦合的框架,框架的部分耦合度被设计为最小,在各个层次上具体选用哪个框架取决于开发者的需要。1.3 数据持久层框架数据持久层框架 HibernateO/R mapping 技术是为了解决关系型数据库和面向对象的程序设计之间不匹配的矛盾而产生的。Hibernate 是目前最为流行的 O/R mapping 框架,它在关系型数据库和 Java 对象之间做了一个自动映射,使得程序员可以以非常简单的方式实现对数据库的操作。Hibernate 工作原理如图 3 所示。 图 3 Hibernate 通过对

10、JDBC 的封装,向程序员屏蔽了底层的数据库操作,使程序员专注于 OO 程序的开发,有助于提高开发效率。程序员访问数据库所需要做的就是为持久化对象编制 xml 映射文件4。底层数据库的改变只需要简单地更改初始化配置文件(hibernate.cfg.xml 或者 hibernate.properties)即可,不会对应用程序产生影响。Hibernate 有自己的面向对象的查询语言 HQL,HQL 功能强大,支持目前大部分主流的数据库,如Oracle、DB2、MySQL、Microsoft SQL Server 等,是目前应用最广泛的 O/R 映射工具。Hibernate 为快速开发应用程序提供了

11、底层的支持。2 基于基于 SSH 组合框架的组合框架的 Web 应用模型设计与实现应用模型设计与实现2.1 集成集成 SSH 的新型的新型 J2EE 框架框架前面分析了基于 J2EE 的三种框架技术,下面通过集成以上三种框架技术来对传统的 J2EE Web 开发模型加以改进,以形成一种新的、轻量型的 J2EE 架构。集成 SSH 框架框架的系统框架图框架图如图 4 所示,系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。其中使用 Struts 作为系统的整体基础架构,负责 MVC 的分离,在 Struts 框架的模型部分,利用 Hibernate 框架对持久层提供支持,业务层用

12、Spring 支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的 Java 对象,然后编写基本的 DAO 接口,并给出Hibernate 的 DAO 实现,采用 Hibernate 架构实现的 DAO 类来实现 Java 类与数据库之间的转换和访问,最后由 Spring 完成业务逻辑。 图四图四系统的基本业务流程是: 在表示层中,首先通过 JSP 页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后 Struts 根据配置文件(struts-config.xml)将 ActionServlet 接收到的 Request 委派给相应

13、的 Action 处理。在业务层中,管理服务组件的 Spring IoC 容器负责向 Action 提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于 Hibernate 的对象化映射和数据库交互,处理 DAO 组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有

14、利于团队成员并行工作,大大提高了开发效率。2.2 基于基于 SSH 框架的框架的 Web 应用系统的实现应用系统的实现下面将通过一个实际的系统来展示如何进行基于 SSH 框架框架的 Web 应用开发。该系统是为某通信公司运营部开发的一个问答式系统,功能类似于百度知道和新浪爱问。由于系统的模块较多,下面就以一个用户管理模块为例来说明系统的开发实现过程,并将按照数据持久层、业务逻辑层、表示层的顺序说明系统构建过程。(1)数据持久层数据持久层由 Java 对象持久化类和数据访问对象(DAO)组成。每个数据库表都对应着一个持久化对象,这样就给予了开发者使用 OO 思想设计和开发的便利,同时也屏蔽了具体

15、的数据库和具体的数据表、字段,消除了对数据库操作的硬编码在重用性上的弊端。用户信息表的部分结构如表 1 所 Hibernate 通过映射(Mapping)文件将对象(Object)与关系型数据(Relational)相关联,因此需要编写和数据库表相对应的 Java 持久化类以及对应的映射文件。有了 Java 持久化类后就可以在此基础上实现数据访问类。在 Spring 框架中,数据访问类可以从辅助类 HibernateDaoSupport 继承,这极大地方便了 Hibernate 框架在 Spring 中的使用,相应的部分代码如下:public class UserDao extends Hib

16、ernateDaoSupport public int add(User user) return Integer.ParseInt(this.getHibernateTemplate().save(user).toString();public List findAll() return this.getHibernateTemplate().loadAll(User.class);具体的 Hibernate 数据源、session 工厂、事务管理、缓冲连接池等功能都由业务层的 Spring 容器提供。(2)业务逻辑层业务逻辑层由 Spring 框架支持,提供了处理业务逻辑的服务组件。开发者需要对业务对象建模,抽象出业务模型并封装在 Model 组件中。由于数据持久层实现了 Java 持久化类并且封装了数据访问对象(DAO),因此可以在 Model 组件中方便地调用 DAO 组件来存取数据。Spring 的 IoC 容器负责统一管理Model 组件和 DAO 组件以及 Spring 所提供的事务处理、缓冲连接池等服务组件。在用户管理模块中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号