APP下载

基于SSH的办公室开放信息系统的分析与设计

2013-10-20李启锐陈晓龙

微型电脑应用 2013年10期
关键词:视图逻辑框架

李启锐,陈晓龙

0 引言

工作中到各个办公室办理业务是不可避免的,但是经常遇到这种问题:当带好材料到办公室门口才发现,由于办公室人员出差或其它原因,办公室暂停对外开放,让人白走一趟。解决这个问题的常用方法是出门之前先往该办公室电话预约。

造成“吃闭门羹”的主要原因是办公室的开放信息不能被方便地查询。为此,本文分析了办公室开放信息的建立、发布和查询流程,设计了一个办公室开放信息系统。在该系统中,通过网络就可以查询到所需信息,既不影响他人工作,又可以节省电话资源。

为了使用方便和提高跨平台性,系统采用 B/S架构模式,基于SSH框架技术实现。

1 系统功能分析

系统主要实现办公室信息的设置与查询,包括办公室信息管理、用户管理、办公室状态设置和办公室状态查询 4个功能模块。办公室分为两个级别:第一级别是以大的机关处室为单位,如教务处等;第二级别是机关处室下的各个科室,如教育管理科等。机构信息包括名字、负责人、职能描述、地址等信息。办公室的信息包括名字、负责人、地址、职能描述等信息,二级科室还包括办公室状态信息,状态分为正常、出差、开会、休假 4种。系统的用户主要分为 3类,第一类是系统管理员,可以进行办公室信息管理和用户管理;第二类是办公室人员,这类用户分属于各个二级科室,可以登录系统设置办公室的状态信息;第三类是普通用户,只能查询办公室的状态信息。用户管理包括对第二类用户信息进行添加、删除和修改。

2 SSH技术分析

SSH是目前流行的Java开源框架组合,它提出了一种开发 J2EE应用的轻量级解决方案[1]。利用 SSH 整合框架可以开发出一个分层的、易维护、可复用的企业级应用系统[2]。

2.1 Struts2框架技术分析

Struts2是一个可扩展的 JAVAEE Web框架,它不是Struts1的简单升级,而是从 Web Work升级而来的新版Struts[3],它集成了输入校验、国际化、类型转换、拦截器、标签库等常用的Web编程技术。

Struts2实现了 MVC设计模,提供了开发MVC系统的底层支持。它将应用程序分解为业务模型、控制器和视图三大模块,降低了各模块之间的耦合度,提高应用程序的可维护性和重用性。

在Struts2中,FilterDispatcher作为主控制器由Struts2框架提供,它接收视图传送过来的请求,并分发到各个分控制器(Action)来处理。Action负责对某一个或多个特定的页面请求的响应,调用相应的业务逻辑来处理,并把结果数据提交到视图显示给用户。Action由开发人员根据需要编写。Struts2使用 stuts.xml来定义请求与Action、请求与处理方法、处理结果与视图之间的对应关系。stuts.xml是 Struts2的核心配置文件,与 Struts2相关的特殊配置项目都在该文件中设置。

2.2 Spring框架技术分析

Spring框架的目标是解决企业应用开发的复杂性,具有两大核心功能:控制反转(IoC, Inversion of Control)和面向切面编程(AOP, Aspect Oriented Programming)。

IoC又称为依赖注入(DI, Dependency Injection),其思想是当某个Java实例(调用者)需要另一个Java实例时,不再需要调用者创建被调用者实例,这个工作由外部的协调者(如Spring容器)来完成。在这种设计模式中,对象与对象之间的依赖关系被从代码中分离出来,通过配置文件进行动态管理,使得程序耦合度非常松散,对象的更换变得相当简单。

AOP是一种通过预编译方式和运行期动态代理技术,实现了在不修改源代码的情况下给程序动态统一添加功能的技术。利用这种技术可以将一些通用功能从不相关的类中分离出来,能够使很多类共享一个行为,提高程序的重用性。这样,一旦这种行为发生变化,不必修改很多类,只需要修改这个行为即可,提高程序的开发效率。Spring的事务处理就是AOP技术的典型应用。

2.3 Hibernate框架技术分析

Hibernate是一个面向 Java环境的轻量级ORM(Object/Relation Mapping )工具,其作用是对Java类与关系数据库表进行映射,完成数据的持久化,同时提供数据的查询、一致性检查、事务管理等机制[3]。应用Hibernate,程序员可以完全使用面向对象的思维去操作数据库,不必关心数据库连接、事务处理等细节问题,这些细节的处理在传统的使用SQL和JDBC编程中是不可避免的。因此,程序员可以从繁重的数据库操作中释放出来,集中精力处理系统的业务逻辑。另外,有了映射机制,程序代码中不再需要出现如数据表名等数据库元数据信息,进行数据库移植时不需要修改代码,提高系统的灵活性。

2.4 SHH整合技术分析

Web 应用分层思想把一个Web应用程序分为表示层、业务逻辑层和数据存取层三个层次。与MVC模式相对应,表示层包含MVC模式中的视图与控制器,而业务逻辑层和数据存取层则组成MVC模式中的模型。结合3 个框架各自的特点及Web 应用分层思想,得出SSH整合的策略。Struts2实现了 MVC模式,有优秀用户交互功能,因此把 Struts2作为MVC的承载者,主要实现表示层功能。Hibernate是最好的ORM工具之一,使用它可以简化数据库的操作,主要用来实现数据存取层功能。整合过程以Spring 框架为核心:第一,使用它的Ioc机制实现表示层、业务逻辑层、数据存取层之间的相互调用,降低各层之间的耦合度;第二,使用AOP机制实现数据存取层事务的统一管理,进一步简化数据库的操作。

3 系统设计

3.1 系统结构模型设计

在软件体系架构设计中, 分层式结构是最常见, 也是最重要的一种结构[4]。系统使用三层结构设计,分别为表示层、业务逻辑层和数据存取层。基于SSH的整合实现,得出系统的总体结构,如图1所示:

图1 系统三层结构模型

在此模型中,按照不同的功能把程序分3个层次,逻辑上相互独立。层次之间的调用通过 Spring的依赖注入技术实现,与一般的MVC模式相比较,程序更深层次地降低了模块之间的耦合度,大大提高了程序的简单性和可维护性。使用 Hibernate和 Spring进行数据持久化操作,与传统的JDBC相比较,降低了程序复杂度,减少了一些重复性的工作,提高开发效率。

(1)表示层设计

表示层实现MVC模式中的视图与控制器功能。该层为用户提供一种交互式的操作界面,主要应用Struts2技术实现,方便调用其标签库、输入校验、拦截器等功能。Struts2首先接收用户的请求,把用户的输入通过 Action转发给相应的业务逻辑层来处理。接收到处理结果后调用相应的视图显示给用户。

控制器与视图之间的数据传输主要通过 Action类中定义的属性(提供getter和setter)及部分Servlet API来实现。主控制器通过解析struts.xml来实现不同的请求分发给不同的子控制器,并根据不同处理结果调用不同的视图来显示。

(2)业务逻辑层设计

业务逻辑层是针对具体问题的处理。该层根据表示层的请求,对输入的数据进行加工处理后把结果返回给表示层。处理过程如果需要数据库支持,则调用数据存取层从数据库中存取数据。

(3)数据存取层设计

数据存取层负责一切数据库操作,主要用Hibernate技术实现。同时使用 Spring进行统一的事务管理,把所有事务交给Spring自动完成处理,这只需要在Spring的核心配置文件中 applicationContext.xml中配置即可。Hibernate与Spring整合之后,DAO组件类还可以继承 Sping提供的HibernateDaoSupport类,该类把数据库的操作过程封装成模板。使用模板可以大大简化操作数据库的程序。

3.2 系统类设计

根据以上结构模型,系统的程序中至少有Action组件、Service组件和DAO组件需要编写。这3种组件之间的相互调用由 Spring动态注入完成,其本质是根据面向对象中多态性的特点,使用接口编程实现。Action类通常从 Struts2框架提供的ActionSupport中继承,因为ActionSupport中已经定义好一些通用的用户交互功能,如输入检验等。Dao组件通常继承Sping提供的HibernateDaoSupport类,简化操作数据库的编程方法。另外,系统中还有与关系数据表映射的持久化PO类。因此,得出系统的类图,如图2所示:

图2 系统类图

由于篇幅原因部分接口和类未在图中列出。

4 结束语

基于SSH的系统可以很好地实现表现层、业务逻辑层及数据存取层的相互独立, 使系统具有很好的稳定性、可扩展性和可维护性,并能提高系统的开发效率。但目前这三个层次往往是在相同的应用程序服务器上运行,对于大型的软件系统,容易造成服务器的负担过重,如何有效地把 3个层次进行分开部署和运行,是值得继续深入研究的问题。

[1]周文琼,王乐球,汤君武, 曾庆斌.基于SSH呼叫中心排班系统的设计与实现.软件导刊[J], 2011(4):53-55

[2]李雷孝,刘晓军,刘利民,包力.基于 SSH 整合框架的科研项目管理系统的设计与实现.[J].内蒙古农业大学学报,2012(1):210-214

[3]张红卫, 贾松涛,李晓,王磊.基于SSH的多语种构件库管理系统的设计与实现[J].计算机应用软件,2010(5):139-142

[4]杨钟鸣.基于 SSH框架的社区管理信息系统设计[J].东华理工大学学报(自然科学版),2010(4):379-383

猜你喜欢

视图逻辑框架
刑事印证证明准确达成的逻辑反思
框架
逻辑
创新的逻辑
广义框架的不相交性
女人买买买的神逻辑
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图