基于SSH框架科研管理系统的设计
2016-05-06李鑫
摘 要:传统JavaEE架构在开发过程中会受到种种限制,为提高开发的灵活性和效率,开发人员通常采用Struts、Spring和Hibernate这种目前较为流行的轻量级Web开发架构。这三种开源框架各有其自身的特点,使用他们分别实现系统的表示层、业务逻辑层和数据持久化层,层次间通过接口通信。采用这种集成框架模式开发的科研管理系统,可以降低系统代码的耦合性,提高系统的可维护性和扩展性。
关键词:轻量级架构;SSH;表示层;业务逻辑层;持久化层
DOI:10.16640/j.cnki.37-1222/t.2016.09.225
0 引言
科研管理信息化是高校信息化建设的重要组成部分。在“数字校园”建设过程中,遇到了很多问题,例如,由于过去建设的信息系统,在设计时缺乏整体架构关键,各部门独立建设,导致校园内已建成的信息系统之间不能进行信息交换,业务数据不一致,相关业务流程不能真正实现自动化,给广大师生带来了诸多不便。在这种情况下,非常有必要建设一个基于共享数据库的校园科研管理系统,实现基础数据的全部共享。本文以某高校科研管理系统为例,从研究系统的总体架构设计、业务流程入手,分析了异构数据库的特点,实现了基于异构数据库科研管理系统的数据共享问题。
1 科研管理系统总体设计
系统开发使用Java开发平台,以MySQL为后台数据库的B/S架构。采用这种成熟的结构,可以避免不必要的技術困难。
(1)总体设计架构。科研管理系统采用分层架构体系。使用校园网统一身份认证平台进行安全认证,保证系统运行的安全可靠。基于共享数据库的科研管理系统能够为高校科研管理提供基础信息支持,并且学校科研相关数据能够与全校公共数据库实现数据实时交互,做到真正意义上的数据共享和统一。
基于共享数据库的科研管理系统功能结构如下图1所示。
(2)MVC模式。科研管理系统在逻辑上采用三层MVC模式,Model(模型)、View(视图)、Controller(控制器),这三部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。在MVC模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图。
2 SSH框架结构模型
(1)SSH架构。SSH在JavaEE项目中表示了三种框架,即Spring、Struts和Hibernate。这三种框架都属于JavaEE的开源轻量级企业开发框架。这里所提的“轻量级”是相对于以EJB为核心的复杂框架而言的。通过Spring耦合其他的开原产品进行合作开发,如:使用Struts框架充当表示层,Hibernate作为持久层,完成数据对的持久化操作,采用这种结构完成JavaEE的企业级Web开发。
Struts是在MVC模式基础上构架的Web应用程序的一种开源框架。在模型-视图-控制器基础上构建应用程序,使用自己提供的控制器组件(ActionController类)并与其它技术结合,共同提供模型和视图部分组件。
Struts作为表示层的成熟技术在市场上已经广泛应用,可以很好地和Spring技术中间层紧密结合,Struts可以使用Spring提供的事务处理等特性。Spring按照资源管理的方法提供和Hibernate的集成及DAO实现和事物策略支持,Spring通过IOC机制和Hibernate集成,Spring能够很好地支持开发人员选择对象关系映射技术。
(2)SSH架构的科研管理系统的设计。SSH由3个开源的框架组合而成,表现层用Struts,Struts充当视图层和控制层;业务层使用Spring,Spring通过控制反转让控制层间接调用业务逻辑层;持久层使用Hibernate框架,Hibernate充当数据访问层。每个层在功能上指责明确,不与其他层混合,各层通过通信接口相互联系。
1)Struts负责Web层。ActionFormBean对象负责接收网页中表单提交的数据,然后通过Action对象进行处理,再通过Forward对象跳转到对应的网页。其中Forward对象可以在配置文件struts-config.xml中进行定义,定以后ActionServlet核心配置文件则会自动读取并进行加载跳转信息;2)Spring负责业务层管理,即Service对象(或者Manager对象)Service对象为Action提供统计的调用接口,并且封装持久层的DAO对象,还集成了Hibernate框架中的功能。Spring主要的任务是对所有JavaBean和事物进行统一的管理;3)Hibernate负责持久化层,完成数据的增删改查操作。
Hibernate提供对象关系映射,使用配置文件*.hbm.xml和POJO实体对象,与关系数据库中的表形成映射关系,采用这样的方法,解决了面向对象的程序设计操作关系数据库数据的接口不匹配问题。
在SSH框架的系统中,对象的调用流程是:JSP调用Action对象,Action使用Service方法进行DAO操作,通过DAO连接Hibernate实现对数据库的增删改查操作。Data stream通常为通过调用ActionForm组件自动获取用户的数据,接着Action组件将Data从ActionFormBean对象中取出(数据自动从ActionForm组件存入ActionFormBean中),Data取出后,将其进行封装或者实例化,再调用业务层的实体类(业务逻辑),完成多种实体类操作后再通过Forward对象将数据定位到需要的对象或者页面中。业务逻辑层实例化操作收到这个实体对象之后,会自动调用DAO接口方法,进行持久化操作,完成整个流程。
3 结束语
在传统的JavaEE企业级开发中,EJB一直占据着主导的地位,但运行他需要一个庞大的容器,我们通常称之为“重量级容器”。由于EJB暴露出的缺陷和复杂性,以“轻量级容器”为核心的架构SSH组合的开发解决了这个问题。SSH架构表示层使用Struts,业务层使用Spring,持久层使用Hibernate,使开发过程更加简单、灵活,系统的维护也更加方便,使开发者更关注高层业务逻辑的实现,降低底层框架的设计考虑,提高了开发效率。
作者简介:李鑫(1982-),女,讲师,研究方向:计算机应用技术。