夏继禹
摘要:该文运用了基于struts2、Spring、Hibernate 框架的相关理论和方法,根据县乡公路养护管理功能设计,应用J2EE技术和MVC设计模式,从表示层、业务层、数据层几个方面,着重研究系统实现的技术方法和步骤。
关键词:公路养护管理系统;三层架构;J2EE平台;SSH框架技术
中图分类号: TP3 文献标识码:A
文章编号:1009-3044(2019)17-0097-02
开放科学(资源服务)标识码(OSID):
县乡公路养护管理系统的开发语言主要是java,采用Oracle数据库技术,在开源的MyEclipse集成开发环境下,选用比较稳定、灵活的J2EE作为技术框架支撑的三层架构,基于Web开发技术的工程设计思想,结合MVC架构设计理念,整合开源框架Struts2、Spring、Hibernate(SSH)技术,实现一套数据与视图相互隔离、互不影响的管理系统。
1 关键技术
1.1 开发环境
1)开发语言
Java语言面向接口编程,其Java2平台的企业版J2EE,提供了多层次分布式的应用模型、组件再用、一致化的安全模型以及灵活的事务控制功能。其组件主要包括:客户层组件、Web层组件、业务逻辑层组件和企业信息系统层软件。各种组件、技术以及服务架构在标准和规格上达到一致,优势是利于高效开发、支持异构环境、可伸缩性强、稳定性强、支持长期的可用性。
2)Oracle數据库
本系统使用Oracle10g,通过Oracle数据库技术能够在县乡公路养护管理系统中全面地储存、管理数据信息。Oracle数据库技术非常适合于大型网络的信息处理,无论是在联机事务处理技术,传统的关系型数据库,或在分布式处理技术方面,其高性能、数据并行处理机制,数据安全措施都很完善。Oracle数据库对县乡公路养护管理系统有以下优势:第一,支持上千个用户的大量多媒体数据和大规模的事务处理,可以满足用户多、数据量大的工作负荷;第二,Oracle数据库技术有较好的数据安全性、完整性检查和一致性,系统对非法入侵的用户进行严格的验证机制及服务体系,对不同的用户系统采用不同管理权限进行控制,以保障数据的绝对安全;第三,Oracle数据库技术提供的数据库操作接口,如接口软件PRO系列,利于使用高级语言、应用程序及外部软件完成对Oracle数据库进行存取;第四,支持分布式数据处理,不同区域的硬件、信息资源可以通过计算机网络系统实现共享[1],如网络读写远端数据库的数据,并有对称复制技术。
1.2 MVC设计模式
程序设计应用MVC分层设计模式,可以有效地把应用程序的输入、处理和输出分开进行,通过MVC模式的模型(Model)、视图(View)、控制器(Control)三层架构,分别担负不同的任务,视图层向用户显示相关数据,并接受用户的输入信息;模型层呈现业务数据和业务处理,可为多个视图提供数据;控制器接受用户的输入并调用模型和视图去完成用户的需求。
1.3 实现MVC模式的框架技术
县乡公路养护管理系统采用Struts2+Spring+Hibernate(SSH)框架,架构的层次比较分明,逻辑清晰,代码比较简洁,可读性好,移植性强。
1)Struts2框架
Struts2的基本组件有核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件,包括Action、Actions、Config、Util、Taglib和Validator等。在项目中主要负责视图层、控制层,在视图层提供了大量的标签库,利于提高视图层的开发速度。
2)Spring框架
Spring是一个全方位的整合框架,由AOP模块、O/R映射模块、Web Cibtext及Utility模块、JDBC及DAO模块、Application Context模块、MVC框架、核心容器和支持工具七个模块组成。Spring的作用是将Web层、Service层、DAO层及PO无缝连接整合,主要是在项目中对hibernate和struts进行整合,解决层与层之间的耦合问题。使用Spring框架,利于编写更干净、更可管理、并且更易于测试的代码。
3)Hibernate框架
Hibernate提供共6个核心类和接口,包括Session、SessionFactory、Transaction、Query、Criteria和Configuration,不仅可以对持久化对象进行存取,而且能够进行有效的事务控制,更改数据库不需要更改代码,可以自动生成SQL语句,自动执行,实现对JDBC的进行轻量级封装。利于使用对象编程思维来操纵数据库,移植性好,支持各种数据库,简化数据访问层烦琐的重复性代码,提高开发速度。
2 系统总体设计
2.1 系统功能
县乡公路养护管理系统由用户管理模块和业务管理模块构成。功能主要包括:基础业务信息管理、路桥养护计划管理、日常维护管理、小修保养管理、路桥隧大中修管理、养护经费管理。
2.2 系统三层架构
将系统划分为数据层、业务层、表示层三层架构来设计。
1)数据层
该层提供数据集中服务,通过分布式数据存储策略,全面负责对数据库的操作,完成对数据表的增添、删除、修改、查找和更新等功能操作。将多功能检测车、公路能见度仪等前端感知设备采集的路面检测数据、桥梁检测数据、通道涵洞数据及各种病害检测数据,以及数字化的各类属性数据和业务数据存放在数据库系统中。
2)业务层
该层主要针对具体业务问题的操作,通过对数据层的操作以及数据业务逻辑的处理,实现各业务功能模块的功能。任务主要集中在对业务规则制定、业务流程实现等与业务需求相关的系统设计上。包括:用户权限管理、业务流程管理、业务基础数据管理、路桥养护计划管理、养护项目管理、日常巡查管理、小修保养、大中修项目管理、养护考核管理、安全生产管理、路桥监控管理、应急抢险管理、路桥检测信息管理、病害分析及预警、机械设备管理、可视化应用及移动终端管理等。
3)表示层
该层通过一种交互式操作的界面,为用户显示数据和接收用户输入的数据。主要用户单位是交通局、养护站(所)等。提供的服务是通过图表查询、决策分析、统计报表、多维分析、可视化展示等方式进行数据提取和展现。
在设计中,系统的三层架构与MVC三层架构的对应关系并不是一一对应的,他们的关系是控制器和视图构成表现层,而模型又划分为业务逻辑层和数据访问层。
3 系统实现技术
3.1 系统框架关键配置
县乡公路管理系统由Struts2、Spring、Hibernate三个开源框架集成搭建的。关键配置包括数据库连接、Hibernate持久化配置、Spring事务管理配置、Struts2中通过Spring管理Action,和与Action控制转向的配置。
3.2 用户管理模块的实现
实现巡路、养护、验收、管理人员四种权限的登录和注册功能。
实现登录的步骤:1)提交表单信息,由Struts2过滤器拦截,
通过Struts.xml配置文件交给相应的Action执行;2)在Action层验证表单信息的合法性,验证成功由Service层进行数据封装处理转交给Dao层;3)在Dao层执行与数据库的交互,验证成功后再把登录者的个人信息,由Dao层到Service层,再到Action层;4)由Action层对信息的判断返回相应的Action的Result值,由配置文件Struts.xml找到相应的Jsp模板跳转使用。
3.3 各业务管理模块的实现
3.3.1 表示层的实现
该层基于struts2技术来实现MVC的架构模式,负责页面数据提取,页面动作响应。主要由JSP页面、ActionForm、Action、Action Servlet和Struts.xml共同实现。
实现步骤:1)配置web.xml,由FilterDispatcher接收客户端浏览器发出的HTTP请求;2)配置struts2.xml,找到要调用的Action类和方法,通过Ioc控制反转方式,由Di将依赖的值注入给Aciton;3)处理业务逻辑由Action调用业务逻辑组件来进行,包含表单的验证;4)根据Struts2.xml的配置找到对应的返回结果,并生成相应页面;5)经过过滤器向客户端展示出响应的结果。
3.3.2 业务层的实现
业务层是系统平台的重要功能模块,由Spring框架支持,在程序中起承上启下的作用。首先,在对业务对象建模的基础上,构建每个功能模块相应的管理类,从而管理和维护其业务逻辑;其次,按照功能模块将Spring配置文件分开,可选用基于xml配置、基于注解配置或基于类配置的方式,将管理类对应Bean进行注册配置,以实现使用AOP模式对事务进行控制。业务逻辑由一些会话Bean与实体Bean组成,采用EJB来实现模型,完成客户端跟服务器端的读写等操作。
3.3.3 数据层的实现
用hibernate实现与oracle数据库的连接,配置文件是xml格式,也可以是Java属性文件格式。
实现步骤:1)先创建持久化类;2)创建Hibernate.cfg.xml配置文件;3)读取并解析xml配置文件;4)读取并解析映射信息;5)创建工厂类SessionFactory;6)打开Sesssion接口;7)创建事务JTATransation;8)persistent operate持久化操作;9)提交事务;10)关闭Session和SesstionFactory。
基于SSH框架技术能够显著地提高应用系统的开发效率,并能使应用系统有较高的复用性和可扩展性。但使用SSH连接Oracle数据库的实现技术较为复杂,还需进一步研究和实践。
参考文献:
[1] 王鸣. 数字校园下高校科研管理信息系统的优化[J]. 太原城市职业技术学院学报, 2013(5):137-139.
[2] 刘祺彬. 基于开源技术的MVC框架的构建[J]. 信息技术, 2013(8):125-129.
[3] 吕安涛等. 基于GIS的农村公路养护管理系统设计与开发[J]. 山东交通科技, 2011(3):12-15.
[4] 黃凤苗. 农村公路养护管理信息系统的设计研究[J]. 交通世界, 2015(3):32-33.
[5] 李兴华, 王月清. Java Web开发实战经典[M]. 北京: 清华大学出版社, 2010.
[6] 李刚. struts2权威指南[M]. 北京: 电子工业出版社, 2007.
【通联编辑:张薇】