【JSP开源代码栏目提醒】:以下是网学会员为您推荐的JSP开源代码-基于ExtJS Spring Hibernate的科研团队空间系统开发研究 - 会议论文,希望本篇文章对您学习有所帮助。
全国信息与电子工程第四届暨四川省电子学会曙光分会第十五届学术年会
论文集 375 基于ExtJS+Spr i ng+H i bernate的科研团队 空间系统开发研究· 李朕阮华 (中国工程物理研究院科技信息中心四川绵阳621900) 摘要本文针对我院科研团队个性化系统的需求,设计和开发了一个采用MVC模式的基于 ExtJS+Spring+Hibemate框架组成的科研团队空间系统。
论文详细阐述了系统的设计方案和技术框架, 并以系统中公告管理模块为例具体描述了系统MVC模式的开发实现过程,其中,Spring负责业务逻 辑,Hibernate构建数据持久层,ExtJS实现前台页面。
结果表明,该科研团队空间系统开发框架层次 分明,实现了页面显示与业务逻辑的高效分离,开发效率提高近20%,具有较高的灵活性、可移植 性和扩展性,应用效果良好。
关键词 ExtJS spmg Hibernate科研团队空间MVC开发研究1 引言 作为国家重要的国防科研单位,我院每年会承担大量的科研生产项目和课题,这些项目和持续性研究积累的科研文档资料对科研人员的后续研究具有十分重要的价值。
如何将它们进行高效管理,在研究团队内部实现交流和共享,很大程度上会影响项目组的工作效率。
中国工程物理研究院“科研团队空间系统”就是在这样的背景下提出的。
在团队空间系统中,科研人员将建立起以项目为基础的研究团队,并在团队与团队之间、团队与科研人员之间实现信息与资源的管理、共享。
另一方面,限于开发技术的不完善,传统的信息系统界面设计复杂,形式固定,改动困难。
JavaEE框架在Wcb系统的应用,保留了技术安全性、扩展性、平台无关性和可维护性优势的同时,弥补了显示、业务和数据的高耦合造成的诸多
问题,已成为当前web系统的主要解决
方案之一。
本文即采用当前较为流行的Spring+Hibernate
开源框架组合,再结合Ajax(Asynchronous JavaScript andXML)技术中的ExtJS作为与用户交互的前端,搭建一个高效的富Web应用
软件开发框架—基于Ext+Sprmg+Hibernate的科研团队空间系统开发平台,完成系统的设计和开发工作。
2系统功能设计 依据科研团队
工作的实际需要和系统的特点,科研团队空间可分为三大部分:团队空间业务、控制面板和系统管理。
团队空间业务模块是系统的核心模块,主要包括团队
导航、我的团队、创建团队、
文档中心、协同写作、科研日志、团队资料、团队设定、公告通知等子模块;控制面板模块负责对个系统中的每个科研人员个人信息进行设置,包括个人信息、密码修改和站内短信中心等;系统管理模块负责对整个团队空间进行系统管理,包括团队分类管理、团队管理、日志管理、通知管理、
文档资料管理、系统备份和系统还原功能。
’基金项目:中国工程物理研究院信息化2010课题基金—“中物院B网个性化信息服务系统研发”资助。
!!! 至±!!坚生竺!:!·堡竺!塑型里望坠至旦墨苎堑茎堡塞 图寓基囱国宙寓扇囱目国囱宙禽宙宙寓宙宣3系统技术架构 目I科”团n宅问系统功能摸块 本文的
系统在技术架构上采掰ExOS+Spnn州iberaate组成的开潍框架,以MVC (Model.View4”-’oatr01)为开发模式,结构上按业务功能分为表示层、业务层和数据持久层。
开发环境选用功能完鲥/MyEelipse7 5.底层数据库IJMySQL。
系统开发的工具和环境如表I所示,开发组件关系如图2,系统层次构架如图3。
表l系境开发组件,9表 &用Ⅲ井g 数据库 MysQL JaⅥEE平台 ExUS,Spn喝HIb哪啦 开发w境 MyEclipse7 5 核心业务逻辑 aornig HHibernate}广 l f I L——-j l l, 。
.—。
—..——一——————.—J 圈2系统*发组件关系图 拿国信息与电子T程第口月置州川省电子学士曙光分台第f j房学术年会论空集 盯 l 暑xino L__ 一 i 业务层 {兰竺竺:竺竺兰l ap叫,持久对象)| ng e 。
圈3东绩层次椅颦幽3 l Sprfn“Hibernate、ExtJS,1l spmlg sPnng是一个
开源的JavaEE框絮,它是为了解陡企业应用开发的复杂性而创建的。
spnng使用基本的JavaBean来完成以前只可能由EJB完成的事情..从简单性、可测试性和挫耦台的角度而言.任何Java应用都可以从Spnng中受益。
Sprmg的优点使得系统的开发能够编写更于j争、更可管理、并且更易丁测试的
代码t也为spnng中的各种模块提供了基础支持。
3l 2 Hibemate Hibernate是一个开放源
代码的对象关系映射框架.它对JDBC进行了非常轻量缎的对象封装.使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
3.1 3 ExⅡS ExtlS(简称Ext)是…个刑JavaSeript写的,主要用r自q建前端用户界面。
与后台技术无关的前端Af“框架.它基于HTML/CSS_l-JavaSefipt技术.提供丰富的跨浏览罄uI组件,灵活采用JSON/XML为交换格式,使得服务端表示层的负荷真正减轻,从而达到富客户端的应用。
3 2 MWC框架 为了将Ex慨、spri“g和HI‰me三个
开源框架更好地结台起来,我们采用spnng提供的MVc功能进行系统开发。
Mvc分别代表模型(Model),视幽fView)}U控制co曲IoII神.它既是一个用户界面醍训架构,同时也是第一个分开显示逻辑和业务逻辑的模式.其核心思想就是将整个程序
代码分成相对独立而又能协同工作的几个组成部分,实现了表示与数据的分离。
在MVC架构中应用
程序被分为3个部分:模型、视闰和控制器.Model(模型俄表了席用程序的核心功能,它负责处理用户的数据,实现业务逻辑可用Spring这样的构什对象米处理业务:Vie州视图堤用户看到升与之交互的界面.它向用户显示相关的敢据,,f=能接收用户的输^数据,但是它并不进行任何实际的业务逻辑.同 拶 蚓4 MVC_k§目庳流《幽时,它还能接收模型发出的数据兜新事仆.从而对州户 !!! !!!!!!:型!!:!!塑坐!!竺!!!!!!!!!!界面进行同步更新:Contmll州控制器)负责接收用户的请求和数据.接着它会做出判断将请求和数据交由哪一个模型来处理.最后调刚视图来显示模型返回的数据。
由此.系统开发*MVC的业务流稳如下:首先控制器接收用户的请求.并决定应该调用啷个模型米进行处理,然后模型用业务逻辑采处理用户的请求井返呵数据.最后控制器用相向的视图格式化模犁返倒的数据.井通过=是示层显现给用户。
整个业务流程如图4。
4系统实现4l系统详细实现4I l捂建环境和数据库建立 在集成开发环境MyEclipse7 5措建上述MVC框架(导入ExtJS、spring、Hibernate包).应用时砸构架的sp珊gMVC平台进行开发和系统实现a首先结合系统业务功能甜求,在MySQL数据库中建立数据表,数据表和系统数据库E-R关系图如图5和捌6。
.:打开袅@了设计衰∞耳雠裹∞一j峭}表@ 二;———————————————————————————————————————一 刭那.臼t出口 蜀”山m 吲娜Jo卵.蛔 ■叩Jf■t.m目sa非 _sn肚—p目 jsvsJ目J自 蜀b』∞Jbde —bteam I_〕b k椰由b Jb№an dot- 4号:篙_n: 全国信息S也子T挫第踏扁量四jI宥电子学会曙光*会第十五届学术年会论主集 <propertyname=”sppoSu“d”‘ype=’0a札langLong“> <column研”SPPO_SUnLD“not-null=”Ⅱw”肛 <tgrepe畸> </class><haibemate-mapping> 图6科研团队审问数据库E-R关系图4 I 3 MVC模式开发一页面和业务逻辑 View一视幽层: 在SpringMVC中t使用JsP作为网页显示丈什.JsP文件中几乎没有Java
代码t.q4iHrML,ExOS
代码,也就是说,JsP文件只作为视图(view)模板使用。
其中.使用ExtJS来世计可实现重复使用的网页组件.并运用Spdrig进行页面逻辑呈现。
这样的
设计使得页面显示部分只有JSP,而不是与 依然以公告管理模块为倒.其页面删唧朗tMa“丑g盯Jsp中除了基本配置文件和ExtlS引入Java语言混在一起,从而保证了系统的可维护性。
命令外,没有任何有关业务的Java
代码。
同时,由于公告管理显示页面armounc.ementMagag啊.
jsp中引入了Ext页面蛐otmeementManager.js,使页面显示功能转交给后者完成。
同样地,它仍然不古J眦
代码,仅包含火量的Ext页面构造命々蒂|控件
代码,用于网砸的布局,控件的应用以及数据传递(例如:v缸cm=new Exl舶d.ColunmModel(〔newExL朗d.RowNumberero.cb。
{ header。
公告Ⅲ: b.idden huc id:’sppold’” !塑 苎±!!!!!!£!!贮!!!坐塑型里望坠!塑墨竺堑茎壁垒 一 完成以后,公告管理模块的ExtJS页面是示效果如闰7 寡 警竺挚。
图7 ExOS砥面显示效果 c∞帅II盯_.控制层: spring内建了一个MVC框架.咀Sen,let分发器为中心,将Web请求分发到各个不同的处理器进行处理,该Servlet就是Spring提供的DispatcberServlet,它必须在Web xⅡll里配置,同时可以配 置多个DispatcherServlct,且每个DispateberServlct都会加载和应用相关的xml文件。
科研团队空间系统的Web xtal土要
代码为:<servlet> <scrvlct-name>dispalcberServletr-/servla-name> <scMet-class>org spring&ameworkweb scrvletDispateberServlet,4seawlet刊ass> <init-traeam> <par,an-narne>contextConfigLoeation</param-name> <param-value>fWEB-INF/mappingServletxml</param—value> </init-paxara> <load-on一¥1al,luD>l</Ioad-on·staaup></servlet><servlet·mapping> <seⅣlel吨帅e>dlsDakherseⅣ1et咖Ⅳlct-name> <url-pattern>*.do</ttrl-pattem></servlet-mapping> 以上的配置表示所有”如’’结尾的请求都变给DispateberServlet来处理。
接着.在mappmg-Servletxml文什中配置如F信息:(bcanid=”vicwResolver’’ class=”org sprlng^-ameworkweb servlet view3ntemalResoureeVlewResolver”> <propertyflame=”眦rⅨ“value=”/WEB—INF/views/”卢 <property四=”suffix”value“
jsp’》‰D<beart id=”methodNameResolver。
’ class=”org spnngframeworkweb seⅣldmvcmuhiaetion ParameterMethodNameResolver。
’) <propertymme2”paramName+’value2”action”b</bean> 全国信息与电子工程第四届暨四川省电子学会曙光分会第十五届学术年会
论文集 381<!一公告管理—><bean IxXlTIe=’’/console/announcementManager.do” class=”com.adtech.teamspace.controller.console.AnnouncementController’’>妣矾> 该配置文件说明:在系统的MVC模式中,Spring MVC将客户端发出的所有请求都经过一个前端Servlet控制器DispatcherServlet,负责处理请求的组件是一个控制器(controller),为了找出哪个处理器应该负责处理这个请求,DispatcherScrvlet开始
查询一个或多个HandlerMapping,并将URL映射到一个控制器对象。
一旦找到一个控制对象,它将请求分配给这个控制器,让它根据设计的业务逻辑处理这个请求,完成业务逻辑后,控制器返回一个视图对象或带视图对象的逻辑名的ModelAndView给DispatcherServlet,如果ModelAndView对象携带的是一个视图对象的逻辑名,DispatcherServlet需要一个ViewResolver来查找用于显示回应的视图对象,最后,DispatcherServlet将请求分派给ModelAndView对象指定的视图对象,视图对象负责显示返回给客户。
也就是说,用户访问announcementManager.do的请求将被移交给AnnouncemcntControllcr处理,该控制器设置如下:public class AnnouncementController extends AbstractController{protected ModelAndView handleRequestIntemal(HttpServletRequest argO,HttpServletResponse ar91)throws Exception{return new ModelAndView(”console/announcementManager”); }} Model—业务模型层: 首先,依据业务功能需求定义业务逻辑类的接口方法ISysService,每个接口方法处理一项具体的业务需求,如添加、删除等;其次,依据特定的业务处理过程编写SysServicelmp实现类来实现ISysService中的接口方法。
在接口实现过程中,若需要与数据层进行交互,则调用数据访问类DAO中的数据访问方法完成。
若现有方法不能 /’满足应用需求,则可依据实际情况编写新类继承DAO类,并在新类中添加所需的方法。
每个SysServiceImp类都要实现setSysDao方法,用于将管理和调用数据访问类DAO的工作交由Spring框架来完成;最后,在ApplicationContext:xml中进行配置:为SysServiceImp类配置<bean>对象和注入数据访问对象。
可以看到,MVC架构的开发模式,使 图8系统MVC框架流程图得系统将Java Bean抽象为模型层, !墼 茎王!!!!:!婴!!竺!!竺!!堕型堑里坠至旦墨竺茎丝堡塞.rSP/ExtIS独立成为视图层。
当用户
登陆后对公告进行显示、新增、编辑、删除等操作时,JSP/ExtJS页面将控制权交给Servlet.Servlet将封装的HttpServletRequest、HtipServle嘏esponse作为参数传给Bean处理:Bean将处理结果放^HttpServlet.Response;Servlet再冼获得控制权.将处理的结果交给ExtJS预处理器,最后完成组件的页面显示.该过程如翔8所示。
这样.系统的前端技术与后瑞技术不仅完全分离,客户端载荷也得到了简化。
4 2应用开发效果 基于ExOS、Spring和Hibernate的科研团队空问系统完整实现了l l节所设计的模块功能,并顺利部署运行,具体实现效果如图9-1 3。
!E■e48曾目嚏女 型9系统苜页 蒸蟊 —《杀气苗i·;。
·謦黔k#i… .—!嗨一o·¥±19 圈jo用P十^目n申问模块 垒国信息与电于T程第口届蜃四川省电予学台曙光分击第十j届学来年会
论文集 蠹裟 州冲 m:絮点 圈11控制面板模块 9州…5b 赫诵弛曲姆&姻 图12系统管理模块 一……●ip 圈{3系统应用整体效果图5总结 奉文将基于ExtJS+Spring+Hibemate的MVC开拄架构应用在科研团队空间系统开发中,由Hibemate构建数据持久层,sP珊g负责业务逻辑,ExtJS实现前台页面显示的模式有效地将页面和业务逻辑分离.达到提高开发效率,简化开发复杂度,实现富客户端全新体验的,开发结果表明,该系统开发层次分明.具有较高的复用性、灵活性、扩展性和可维护性。
384 基于ExffS+Spring+Hibernate的科研团队空间系统开发研究 参考文献【1】孙卫琴.Java面向对象编程【M】.电子工业出版社,2006.【2】孙卫琴.Tomcat与Java Web开发技术详解【M】.电子工业出版社,2009【3】林信良.Spring 2.0技术手册(第2版)(第二版)【M】.电子工业出版社,2010【4】Craig Walls,Ryan Breideabach.swing In Action(李磊,程立,周悦虹译)【M】.人民邮电出版社,2006:253-269【5】孙卫琴.精通Hibemate--Java,Vc寸象持久化技术详解【M】.电子工业出版社,2005【6】柯自聪.Aj缸开发概念与案例【M】.电子工业出版社,2006【刀徐会生等.深入浅Ext JS【M】.人民邮电出版社,2010.5【8】涂翔云,姚欣,李春阳译.J2EE权威指南【M】.电力出版社,2003:68-72【9】刘晓华.J2EE应用开发详解口哪.电子工业出版社,2004:156—167【10】梁立新.项目实践精解:基于Struts-Spring-Hibernate的Java应用开发【M】.电子工业出版社,2006:272·304【11】Vikram Vaswani.MySQL完全手册(徐小青,路晓村等译)p咖.电子工业出版社,2004【12】Michael Kofler,MySQL 5权威指南(第3版)(杨晓云等译)p川.人民邮电出版社,2006【13】孙卫琴.精通Struts基于MVC的Java Web设计与开发【嗍.电子工业出版社,2004:189—203【14】杨振东.基于AOP和IoC的Ajax Web框架的应用研究【D】.重庆大学,2008.10【15】孙烨燃.基于Spring与Hibernate框架实现
网络教学系统【D】.天津大学,2006.12【16】李慧霞.基于J2EE和MVC设计模式的Web应用研究与实现【D】.西安电子科技大学,2006.4【17】傅鹂,殷曼吴.基于Struts+Spring+Hibemate+Ajax技术的科研管理系统设计【J】揿件导刊,2009(1):134-136【18】任伟,林晓东.基于Spring框架和ExtJS的药品库房
管理系统实现【J】.
计算机工程与设计,2009,30(18):4312-4318 The Study of Research Team Space System’S Development on ExtJS+Spring+Hibernate Framework Li Zhen,Ruan Hua (Science Technology Information Center,Chinese Academy ofEngineering Physics, Mianyang Sichuan,China,621900)Abstract:In this paper,a Research Team Space System using MVC model and ExtJS+Spring+Hibernate Framework Wasdesigned and developed on the status of personalized scientific research system in CAEE In this paper,the s)rstem’S designand technical framework were described in detail,and specific achievement of MVC model Was described by taking thesystem announcement management module as an example.Specifically,Spring complete system business logic,Hibernateconstruct data persistence layer,and ExtJS achieve front page.The results show that the Research Team Space System’sdevelopment framework structure is clearly,and it implemented efficient separation between page display and business lo百c.In addition,the system has nearly 20%increased efficiency in development with high flexibility,portability and scalability.Key Words:ExOS,Spring,Hibernate,research team system,MVC,development study.