基于SSH 框架的医疗信息系统浅析

2012-07-03 08:26赵建军
山西电子技术 2012年2期
关键词:数据表框架定义

齐 峰,赵建军,孔 兵

(河南大学 计算机与信息工程学院,河南 开封 475001)

随着社会的进步,计算机语言的快速发展,计算机技术给我们的生活带来了很多便利。Java EE是最优秀的企业级应用解决方案,目前已成为电信、金融、电子商务、保险、证券等各行业的大型应用系统的首选开发平台。在Java EE的主流应用开发中,Java Web应用开发技术是主体,这即归功于Java 语言与生俱来的的网络应用开发优势,也离不开Java开源社区琳琅满目的优秀免费资源。本文的医疗信息管理系统便基于Web 技术开发,由Struts、spring和hibernate 共同建构基于MVC 模式的轻量级J2EE 集成框架,由于具有较高的开发效率和易配置性,因此在系统开发中占据很重要的地位。

1 原理简介

1.1 MVC 模式介绍

MVC 思想将一个应用分成三个基本部分:Mode(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作。这样的划分给应用程序带来的好处很多,包括:高可靠性,高重用和适应性,较低的生命周期成本,快速的部署,可维护性。而Java EE的JSP Mode2 问世使得MVC模式的应用更加广泛了起来。它用JSP 技术实现视图的功能,用Servlet 技术实现控制器的功能,用JavaBean 技术实现模型的功能。随后的开源框架spring 中的MVC 模式也得到了广泛的应用,如图1所示。

图1 MVC 请求处理流程

Spring的MVC 框架是围绕DispatcherServlet 这个核心展开的。核心控制器的作用就是截获请求,并将其分发到对应的业务控制器中,由业务控制器调用业务处理的对象处理业务逻辑,然后由业务处理返回一个模型和视图对象,核心控制器根据此对象找到实例显示出结果。

1.2 SSH 框架介绍

1.2.1 Struts

Struts2是从WebWork的基础上发展起来的,吸收了Struts1和WebWork的精华,在稳定性、性能等方面都有了很好的保证。Struts2 也是面向对象的框架,从而将MVC 模式“分离显示逻辑和业务逻辑”的能力完美发挥。Struts2 主要由充当中央控制器的核心过滤器StrutsExecuteFilter、充当线程清洁工的StrutsPrepareFilter 过滤器、决定是否需要调用自定义业务控制器Action的Action 控制器等组成。

1.2.2 Spring

Spring 降低企业开发应用程序的复杂性,简化了企业应用的开发过程,降低了开发成本,能够整合各种流行框架。它以IoC(控制反转)和AOP(面向切面编程)两种先进的技术为基础,完美地简化了企业级开发的复杂度。Spring 框架主要由7个模块组成,而且每个模块都可以单独使用,也可以和其他模块组合使用,灵活且方便的部署可以使开发的程序更加简洁灵活。

Spring的核心控制器只是负责拦截用户请求,但无法完成业务操作。因此,还需要业务控制器的帮助。业务控制器是由用户来定义的,用户定义的业务控制器只要实现org.springframework.mvc.Controller 接口即可。Controller 接口的源代码如下:

在该接口中定义了一个handleRequest方法来处理用户的请求,并返回一个ModelAndView 对象。如图2所示,Spring MVC 通过实现Controller 接口已经提供了丰富的控制器功能。越是底端的控制器,功能越强大,以便完成复杂的业务流程。

图2 Controller 控制器结构图

1.2.3 Hibernate

ORM(Object Relational Mapping)是对象到关系的映射,是一种解决实体对象与关系型数据库相互匹配的技术,其实现思想就是将数据库中的数据表映射为对象,对关系型数据以对象的形式进行操作。在实际的开发中,对象和关系数据是业务实体的两种表现形式,ORM 通过使用描述对象和数据库之间映射的元数据,将对象自动持久化到关系数据库中。因此,ORM 在业务逻辑层与数据库层之间充当桥梁的作用。

Hibernate是一个成熟的ORM 组件,将ORM的思想进行了完美的体现。Hibernate 主要通过持久化类、Hibernate映射文件及Hibernate 配置文件与数据库进行交互。其中,持久化类是操作对象,用于描述数据表的结构;映射文件指定持久化类与数据表之间的映射关系;配置文件用于指定Hibernate的属性信息等。

2 医疗信息系统的功能实现

本开发主要用于医院的信息管理系统,帮助护理人员提高工作效率,方便病人信息的管理。在B/S 模式与C/S 模式,即browser/server 与client/server结构中,本系统采用当前比较流行的B/S 模式进行开发。B/S 体系相比C/S 体系结构具备很多的优点,主要是利用了不断成熟的浏览器技术,结合浏览器的多种script 语言,实现了以前用软件才能实现的功能,并节约了开发的成本。在本系统中我们采用了Struts+Spring+Hibernate 三种主流框架相结合的技术,使整个系统框架结构清晰明了,缩减了开发周期和工作量,方便了后期的系统维护。数据库则采用已经成熟而且精简的MySQL,完全满足了病人信息数据方面的存储需求,因而降低了在系统运行时对硬件的要求。系统的功能流程图如图3所示。

图3 医疗信息系统的功能图

系统中遵循Java 面向接口对象设计的原则,从而降低系统的耦合性。由于我们在接口中只定义了方法,但并没有实现。所以我们就可以按照我们定义的方法去实现接口的实例,如果某个实例不符合我们定义的方法,那么我们可以直接更换实例,而不会影响到我们在上层代码的设计,这样就降低了系统的耦合性,提高了代码的复用效率。

我们采用这种在面向接口设计的好处在于,接口层与层之间的联系是向下兼容的,底层对于上层的内容一无所知,改变上层的设计对底层不造成影响,这是一个理想的降低系统耦合性的一个分层式系统结构。因此,本系统基于以上架构建立,系统的扩展性和维护性得到了充分的保证。

2.1 控制层

本系统的控制层是由Struts2 来实现的,我们需要将Struts2的相关类包放入项目源代码的lib 文件夹中,同时再对web.xml和action 进行相关的配置,如下所示:

2.2 业务层

业务层在表示层与持久层之间,在数据交换中起到了承上启下的作用,是系统架构中最有核心价值的部分。系统中业务层将采用与控制层相同的方式,将实现对象交给Spring框架来托管,并且通过注入持久层对象,实现与数据库间的交互。此系统的持久层对象同样交给Spring 框架托管。相关代码如下例示:

在上述代码中,通过set和get方法来注入和获取IUserInfoDAO 接口的实现类,同时配置Spring 中的application-Context.xml 文件。通过property 属性来完成注入,方便在使用时直接调用。

2.3 持久层

从业务逻辑层中分离出持久层能够极大地提高程序的可扩展性及可维护性,降低程序之间的各种业务的耦合性,使得程序更加健壮和易于维护。Hibernate 封装了数据库访问的细节,并一直维护着实体类与关系型数据库中数据表之间的映射关系,业务处理可以通过Hibernate 提供的API 接口进行数据库操作。接口内定义了一些不同功能的数据管理方法,而这些方法的具体实现是通过其子包中的实现类来实现的。相关的配置如下:

3 结束语

本文系统采用基于JavaWeb 技术和MVC 思想,采用了Struts2+Spring+ Hibernate的SSH 框架来进行该系统的开发。系统的框架模式为4 层结构模式,分别为表示层、业务逻辑层、持久层和数据层。这样的设计与实现使得该系统具备速度快、通用、方便、灵活等特点,并具有较高的可维护性、可重用性以及可扩展性。在此项目的基础上进行扩展开发可提高之后项目的开发效率,节约开发和维护的成本。经过实践证明,取得了良好的效果。

[1]陈丹丹,卢瀚,等.学通Java Web的24 堂课[M].北京:清华大学出版社,2011.

[2]惠燕,潘煜.基于SSH的毕业设计管理平台的研究[J].电子设计工程,2011(1):23-24.

[3]宋隽婷.基于SSH 框架模式的Web应用研究[J].网络与通信,2011(6):63-64.

[4]章慧,刘亚军.基于SSH 框架的高校宿舍管理系统的设计与实现[J].信息通信,2011(5):183-184.

[5]李刚.轻量级企业应用实战——Struts2+Spring3+Hibernate 整合开发[M].北京:电子工业出版社,2011.

[6]赵涛.基于SSH 架构的在线考试系统的研究[J].大众科技,2011(3):27-28.

[7]计磊,李里,周伟.精通J2EE[M].北京:人民邮电出版社,2006.

[8]张帆,刘崇.Web应用架构模式的分析及应用[J].微型电脑应用,2011,27(1):13-15.

猜你喜欢
数据表框架定义
框架
广义框架的不相交性
湖北省新冠肺炎疫情数据表
基于列控工程数据表建立线路拓扑关系的研究
成功的定义
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
图表
基于VSL的动态数据表应用研究
修辞学的重大定义