SSH系统构建技术.doc

2.4 系统构建的相关技术 系统在构建过程中使用了轻量级框架Struts2.0Spring3.0Hibernate3.0 后台数据库采用MySql,服务器采用Tomcat6.0,很好的完成了前台和后台之间的交互,有很好的扩展性和可维护性,整个系统采用java语言进行编写。

2.4.1 相关技术介绍 Struts2是一个开源的轻量级Web MVC框架,它虽然是在Struts1的基础上发展起来的一个Web框架,但是Struts2与Struts1在体系上有很大的差别,在设计上Struts2使用了WebWork的设计核心,通过使用大量的拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。

Struts2的工作流程主要有 1客户端通过浏览器向servlet容器发送请求。

2请求发送后会通过几个过滤器,最后达到FilterDispatcher过滤器。

3FilterDispatcher过滤器根据请求决定调用合适的Action. 4如果ActionMapper决定需要调用某个Action,过滤器FilterDispatcher会把请求交给ActionProxy进行处理。

5ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。

6ActionProxy创建一个ActionInvocation的实例。

7ActionInvocation实例使用命名模式来调用,在调用Action的过程中需要调用相关的拦截器(Intercepter)进行拦截。

8一旦Action执行完毕,ActionInvocation根据struts.xml配置文件找到相应的返回结果。

Struts2工作原理图如下图2-1所示 图2-1 Spring是一个轻量级的IoC控制反转,指不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务相连,但在配置文件中描述哪一个组件需要哪一项服务,容器负责将这些联系在一起,即由容器控制程序之间的关系,控制权由传统的应用代码转到了外部容器和AOP(面向切面编程)。AOP是Spring框架中的一个重要内容,使用AOP技术主要是为了对业务逻辑的各个部分进行隔离,降低它们之间的耦合度,从而提高代码的可重用性和开发的效率。Spring框架由20多个模块组成,这些模块被组织到一个核心容器中,如图3-1所示 图2-2 核心容器(Core Container)采用工厂模式(BeanFactory类)来实现IoC,它是整个框架的核心,主要由四个模块组成Beans、Core、Context以及Expression Language。Context建立在Core和Beans模型之上,通过它可以访问被框架管理的对象。数据访问与整合层(Data AccessIntegration)包括JDBC、ORM、OXM、JSM以及事物模块,JDBC模块提供了JDBC的抽象层,统一了数据库访问的错误代码;
ORM模块主要用来处理对象关系映射;
Web模块建立在应用上下文模块的基础上,主要用户给用户展示前台页面。

Hibernate是一个开源的对象关系映射框架,由于它对JDBC进行了对象的封装,因此在系统开发的过程中可以使用面向对象的编程思维来操纵数据库。Hibernate体系结构概要图如下图2-3所示 图2-3 Hibernate使用hibernate.properties、XML Mapping等为应用程序提供数据持久化的服务,Hibernate对对象的封装为前台数据的展示和后台数据的维护带来了方便,从而提高了开发的效率。

2.4.2 系统设计 系统采用四层B/S结构,结构图如下图2-4所示。

图2-4 表示层主要采用Struts框架进行设计,主要负责前台页面的展示,实现MVC(Model View Controller)中的视图部分和控制部分。业务逻辑层主要使用Spring框架实现,采用依赖注入的方式将业务逻辑组件在运行期间被注入到容器中,从而提高系统的可维护性。利用Spring框架中的AOP技术,降低各个组件之间的耦合度。数据访问层采用Hibernate框架来实现,主要完成对象-关系映射的建立,通过这个映射以及访问业务对象实现对后台数据库的访问。同时通过对象-关系映射的配置,建立业务对象之间的关系,从而简化数据库的建立和维护。数据库层主要完成数据的存储、管理等功能。

2.4.3 系统构建 系统构建采用从后台到前台的开发顺序,根据需求关系确定类与类之间的关系,根据系统实际需求确定类中的属性和方法。

系统主要采用轻量级框架SSH(Struts2.0Spring3.0Hibernate3.0)进行搭建,表现层使用Struts,业务逻辑层使用Spring,数据持久层采用Hibernate。系统架构图如下图2-5所示 图2-5 具体构架时采用底层的开发模式,首先对Hibernate框架的持久层进行设置,对配置文件中的映射关系进行配置。然后对业务层利用Spring框架进行设置,主要创建数据访问接口(DAO),创建DAO的实现类,同时配置业务层逻辑以及持久层信息,并且引入HibernateTransactionManager、HibernateSessionFactory 将业务层Spring与持久层链接。最后,对表示层Struts进行设置,利用HTML开发静态网页,JSP开发动态网页,同时加载JavaScript文件。对Struts中的配置文件进行相应的配置,完成表示层Struts与业务层Spring的链接。SSH集成架构如下图2-6所示 图2-6