您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Struts和Hibernate整合框架研究与应用(最终)
Struts和Hibernate整合框架研究与应用第1页共5页Struts和Hibernate整合框架研究与应用李雷孝1刘志强杜慧敏冀强(内蒙古工业大学信息工程学院呼和浩特010051)摘要:本文对Struts、Hibernate框架及两者整合进行了分析研究,并利用该整合框架进行应用开发实践,有效地解决了传统JavaWeb应用开发中存在的系统扩展性差、可维护性差等问题,应用系统正在实际中推广使用。关键词:Struts,Hibernate,整合框架,教材管理中图分类号:TP311StrutsandHibernateIntegrationFrameworkResearchandApplicationLILei-Xiao1LIUZhi-QiangDUHui-MinJIQiangAbstract:Inthispaper,Struts,Hibernateframeworkandintegratedframeworkareanalyzedandstudied,anduseoftheintegratedframeworktoapplyfordevelopmentpractices,effectivelysolvethetraditionalpoorsystemscalabilityandmaintainabilityissueofJavaWebapplicationdevelopment,applicationsystemisinpracticewidelyused.Keyword:Struts,Hibernate,IntegrationFramework,BookManagement0引言随着Java技术的逐渐成熟与完善,其跨平台、较好的安全性和对网络编程良好支持的特性成为众多Web信息系统的首选。作为建立企业级应用的标准平台--J2EE平台规范包括众多技术:EnterpriseJavaBean(EJB)、JavaServlets(Servlet)、JavaServerPages(JSP)、JavaMessageService(JMS)等,利用这些技术可以开发出许多Web应用系统。但是,利用这些技术在传统JavaWeb应用的开发过程中也出现了一些问题:1、代码凌乱冗长,系统的可维护性差;2、团队开发不易分工,只能按功能模块来分工,开发效率低下开发成本高;3、系统层次模糊,扩展性差;4、数据模型和业务逻辑模型之间的矛盾;目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性。如何设计一个低耦合、高内聚并且具有良好的可维护性、可扩展性的系统一直是软件工程领域重点研究的问题,在JavaWeb应用开发中引入优秀的开源框架使之成为可能[1]。本文就针对该问题对Struts和Hibernate整合框架做了探讨,并利用该框架技术成功开发了高校教材管理系统。1Struts框架Struts架构是MVC设计模式的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC设计模式的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts框架体系结构如图1所示。其中ActionServlet作为主控制器由Struts框架本身提供,系统所有其它动作,都要经过ActionServlet来分发即管理系统所有的行为。由它决定哪个Action被真正调用并处理导航流,同时Action可以通过配置文件来管理,在一定程度上增加了整体结构的灵活性。Action作为分控制器负责某一个或者多个业务逻辑的调度,并把响应结果数据提交到相应的表现层(视图)显示给用户。模型包括概念模型(实体组件)和设计模型(业务逻辑组件),实体组件是对物理实体的抽象,代表业务实体的数据;基金项目:内蒙古工业大学教改项目(200828),内蒙古工业大学基金项目(X200802)1李雷孝(1978-),男(汉族),山东成武人,讲师,硕士,主要研究领域:软件工程Web信息系统Struts和Hibernate整合框架研究与应用第2页共5页业务逻辑组件主要是对业务逻辑处理功能的具体实现,由普通的JavaBean组件类表示,本质上是负责处理系统的业务逻辑和访问底层数据库。视图负责接收客户端用户数据和返回后台处理的响应结果数据给用户。配置文件struts-config.xml用于定义框架中各个对象之间的关系,将框架中的视图(JSP)、分控制器(Action)等部分联系在一起;所有与Struts相关的特殊配置项目都应在此文件中进行设置;在应用系统变动时,只需修改该配置文件中的配置,而不用再重新编译发布相关的类;同时它还描述了客户提供的数据与ActionForm组件的对应映射关系;系统启动配置文件将被加载到内存供主控制器读取[2][3][4]。图1Struts框架体系结构图Fig.1Strtusframearchitecturechart2Hibernate框架Hibernate是一个功能强大的开源ORM框架工具,允许开发者使用常见的Java语言特性(如继承、多态等)实现对象模型到关系数据库的映射,并支持Oracle、DB2、SQLServer、MySQL等主流数据库系统。Hibernate利用反射机制在运行时实现持久化一个对象的各种操作,保证了源码的简练和完全的面向对象风格。图2Hibernate框架体系结构图Fig.2HibernateframearchitecturechartHibernate框架体系结构如图2所示。Hibernate自身通过对象-关系映射文件(*.hbm.xml)将实体类映射到数据库中的表,为应用程序提供持久化服务。Hibernate是Java应用和关系数据库之间的桥梁,它将应用层对对象的操作直接转化为对关系数据库中的表的操作,使程序员不用关心数据库的操作问题,解决了业务逻辑和数据模型的矛盾,真正做到了面向对象编程。Hibernate提供众多操作对象的应用接口(API),在数据库操作编程时可直接利用,大大提高了编程效率和编码的可靠性。Hibernate全局配置文件hibernate.cfg.xml中描述数据库连接信息、注册系统所有的对象-关系映射文件(*.hbm.xml),以便应用启动后就完成了数据库的连接和所有对象-关系映射文件的加载工作[5][6]。3整合框架为避免上述传统开发的问题,在进行JavaWeb应用设计开发时,将上述两种框架整合使用,应用层采用基于MVC的Struts框架,数据库持久层采用成熟的ORM框架—Hibernate框架。两者整合首先应建立全局配置文件利用IOC(控制反转,本质上是一种容器)和AOP(面向方面编程)思想实现整合,即将系统所涉及对象统一管理。首先将Hibernate的配置获得数据请求浏览器主控制器(ActionServlet)调用响应调用读取分控制器(Action)配置文件(Struts-config.xml)模型(JavaBean)视图(JSP)调用映射应用层实体对象(POJO类)调用数据操作层(Dao层)关系数据库HibernateAPIHibernate配置文件对象关系映射文件数据持久层数据层映射注册调用配置Struts和Hibernate整合框架研究与应用第3页共5页文件内容在全局配置文件中描述,并将Struts的配置文件在其中注册,这样就将Hibernate中的组件和Struts中的组件由IOC统一管理。这样可以利用AOP思想进行开发,使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性[7]。结合上述的描述和图示可以看出两者的整合框架应用架构的体系结构是一个典型的多层B/S结构。该结构可分为表现层、控制层、业务逻辑层、数据库操作层、数据持久层、数据库层六层。表现层由JSP组件构成;控制层由主控制器(ActionServlet)和分控制器(Action)构成;业务逻辑层也称为Service层,提供一个JavaBean来实现业务逻辑接口中的所有业务逻辑方法;数据操作层也称为Dao层,提供一个JavaBean来实现数据操作接口中的所有访问数据库方法;数据持久层提供对对象和关系之间映射并提供操作对象的接口;数据库层提供对系统数据的永久保存。JavaWeb应用开发采用上述整合框架,将有效地提高系统的可维护性、可靠性;团队开发易分工,使得开发效率大大提高开发成本降低;充分发挥面向对象编程的优势,分析-设计-实现均可采用面向对象技术,降低开发失败的风险。4框架应用实践4.1系统分析与设计(1)系统需求分析随着高校招生规模的扩大,学生的数量逐年增加,并且高校学分制的实施,选修课的增加,教材的管理工作也随之复杂,为了提高工作效率,节省人力物力,故设计并开发基于上述整合框架的高校教材管理信息系统。通过调研分析,高校教材管理系统包括教材征订、信息查询、信息统计、教材审批、教材评价、教材项目审批、库存管理、信息发布管理、文档资料上传下载、系统管理等功能模块,实现教材管理的信息化和自动化。(2)系统功能模型由上述需求分析可以对系统的功能模块进行设计,如图3所示的系统功能模块图:各功能模块的详细描述如下:教材征订:包括教材申报信息录入、批量导入、申报模版下载;教材评价:包括各类评价表、调查表的网上提交和统计;教材审批:包括更换教材申请、系室审批、学院审批、学校审批的教材更换流程的自动化管理;库存管理:包括对书库库存的教材进行管理,提供综合查询功能,为征订教材提供依据;教材项目管理:自编教材项目的申报、系室审批、学院审批、教务处审批、教工委审批、学校审批的项目申请、验收批准的自动化流程管理,并且提供了对已审批的项目经费进行管理;图3系统功能模块图Fig.3Systemfunctionalblockchart信息发布管理:包括教材管理相关的信息、通知、公告发布,维护;上传下载:包括教材相关的文件、文档、表格等资料的上传下载;教材管理系统信息查询综合统计库存管理新闻管理项目管理教材审批上传下载教材评价教材征订系统管理Struts和Hibernate整合框架研究与应用第4页共5页信息查询:包括教材信息查询、征订信息查询、最终订购信息查询以及各类审批信息查询,为各类用户和各级部门提供结果显示和导出表格文件等方便的服务;信息统计:包括多条件下补订教材情况统计、更换教材情况统计、征订教材统计和教材类别统计,并提供了导出统计结果、统计结果以两种不同的显示方式(表格和Excel柱状图)显示;系统管理:整个系统的基础数据维护。(3)系统数据模型通过对系统的功能及系统所管理的主要实体进行分析,得到如图4所示的数据模型:BOOKPKidnameISBNauthorpriceversion.........STOREPKidBIDcountdesAPPLYPLANPKidplanNocNamebIdcountcollIddeptId..................COLLEGEPKidcodenameaddrphoneDEPTPKidnamecodeaddressphonecollIdCLASSPKidcodenamecountdeptIdSTUDENTPKidstuNonameclassIdin_year.........USERPKidnamelNamepasswdTypedeptIdphone.........BOOKEVALPKidbookIditem1val1item2val2.........BOOKPROPKidbNamecNameAuthordeptOp..........BOOKAPPPKidoldBIdnewBIdreasondeptOp.........图4系统数据模型图Fig.4Systemdatamodelchart4.2系统实现(1)数据库实现根据上述的数据模型,在Oracle10g数据库管理系统中建立数据库BOOK、数据库用
本文标题:Struts和Hibernate整合框架研究与应用(最终)
链接地址:https://www.777doc.com/doc-2850795 .html