基于ExtJsSpring和iBATIS的Web系统应用研究.docx

上传人:b****0 文档编号:9977268 上传时间:2023-05-22 格式:DOCX 页数:4 大小:18.45KB
下载 相关 举报
基于ExtJsSpring和iBATIS的Web系统应用研究.docx_第1页
第1页 / 共4页
基于ExtJsSpring和iBATIS的Web系统应用研究.docx_第2页
第2页 / 共4页
基于ExtJsSpring和iBATIS的Web系统应用研究.docx_第3页
第3页 / 共4页
基于ExtJsSpring和iBATIS的Web系统应用研究.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于ExtJsSpring和iBATIS的Web系统应用研究.docx

《基于ExtJsSpring和iBATIS的Web系统应用研究.docx》由会员分享,可在线阅读,更多相关《基于ExtJsSpring和iBATIS的Web系统应用研究.docx(4页珍藏版)》请在冰点文库上搜索。

基于ExtJsSpring和iBATIS的Web系统应用研究.docx

基于ExtJsSpring和iBATIS的Web系统应用研究

基于ExtJs、Spring和iBATIS的Web系统应用研究

摘要:

在分析extjs、spring和ibatis三种开源框架特点的基础之上,提出了集成这三种框架的web应用系统。

通过实例代码,分析了表现层、控制层、业务逻辑层和数据持久层实现过程。

最后指出了该web应用系统的优势,以及在开发指标管理系统时的注意事项。

关键词:

extjs;spring;ibatis;富因特网应用;web应用0引言随着技术的发展,ajax技术的出现,b/s结构的web应用逐渐向富客户端发展。

富客户端技术集成了桌面应用的交互性和传统web应用的部署灵活性,为用户提供一个更丰富、更高和更全方位的网络体验。

extjs框架便是一种与后台技术无关的,可以用来开发富客户端的前端ajax框架。

在开发基于j2ee的中小型企业级的web应用时,强调的是系统的敏捷开发、可扩展性以及易于维护。

然而,传统的基于ejb的重量级框架技术由于其复杂性,往往使开发过程事倍功半。

类似于spring的轻量级框架的出现,正好解决上述问题。

目前,轻量级框架的发展已经成为推动j2ee技术发展的重要推动力,成为新一代j2ee技术构架的基础。

本文通过对extjs、spring和ibatis的整合研究,探索用户体验好、系统开发高效、可复用性和易于维护的集成框架平台,为指标管理系统的开发提供较好的框架技术支撑。

1开源框架介绍1.1extjs框架extjs框架是一个强大的javascript类库,提供了可重用的对象和部件,简化了开发,丰富了客户端界面效果。

它基于纯html/css和javascript技术,灵活采用json/xml作为交换格式,提供丰富的跨浏览器ui组件,使服务端表示层的负荷减轻,从而达到客户端ria应用。

1.2spring框架spring是一个提供了解决j2ee问题的一站式框架,包括核心容器、springcontext、springaop、springdao、springorm、springweb和springmvc七个模块。

通过ioc(控制反转)技术,可以将对象间的依赖关系交由spring进行控制,降低程序的耦合度;通过spring提供的aop(面向切面编程),可以将业务逻辑与系统服务(如日志、事务、权限和异常处理等)进行分离,达到易维护和重用的目的;通过spring提供的orm模块,可以将spring和ibatis进行无缝集成,并利用ibatis提供的orm机制,提高系统设计和自由度。

另外,spring提供了mvc2模式的实现,使用非常方便,无需整合其他mvc框架。

1.3ibatis框架ibatis是一个基于java的持久层框架,它提供的持久层框架包括sqlmap和dataaccessobjects(dao)。

相对hibernate和apacheojb等“一站式”orm解决方案而言,ibatis是一种“半自动化”的orm实现,其着力点则在于pojo与sql之间的映射关系。

使用ibatis提供的orm机制,对业务逻辑实现人员而言,面对的是纯粹的java对象,而对于具体的数据要求开发者编写具体的sql语句,这为系统设计提供了更大的自由空间。

2集成框架实现将extjs、spirng和ibatis集成一起,不仅为用户提供丰富的界面,而且也达到了提高软件开发效率的目的。

集成后的系统结构如图1所示,分为表现层、控制层、业务逻辑层、数据持久层和数据储存层。

另外,应用springaop代理提供日志、事务处理和异常处理服务。

图1集成后系统结构2.1表现层表现层主要应用extjs技术框架来实现,通过extjs提供的丰富的ui组件,使用页面效果达到桌面应用程序的风格,提高业务操作的方便性,实现友好的人机交互界面。

应用extjs的ajax技术与控制层交互,实现数据的异步更新,关键代码如下。

代码中,url所示userlogin.htm是springmvcurlmapping定义的访问请求,即表现层通过ajax向控制层发出userlogin.htm请求,而params是表现层向控制层传递的参数。

请求成功,则通过success接收控制层返回的处理结果。

请求失败则通过failure接收控制层返回的请求失败的消息。

ext.ajax.request({url:

‘userlogin.htm’,//springmvcmapping定义的访问链接success:

function(response,options){…},failure:

function(response,options){…},params:

{‘fl’:

‘configuser’}//多动作参数})2.2控制层控制层主要应用spirngmvccontroller处理用户请求,向业务层发送请求,向表现层返回处理结果,其关键配置如下。

配置中,id为urlmapping的bean定义了映射,对userlogin.htm的访问会为映射到id为userloginint的bean。

而id为userloginint的bean,则是定义了一个访问控制器,通过控制器决定对业务层的调用。

参数methodnameresolver定义了多动作参数,用于决定访问的方法。

userloginint//多动作参数,fl=userloginconfig//依赖注入userservicebean该层还应用springsecurity处理用户验证和授权,为web应用提供安全支持。

2.3业务逻辑层业务逻辑层主要应用springioc以及xml配置文件,实现同各层间的交互,为控制层提供业务模型组件。

业务模型组件通过调用持久层dao操纵数据库,完成业务逻辑。

spring的配置文件见2.2所示的“定义用户登录界面控制器”,其中,名称为userservice的参数指定了通过springioc依赖注入的id为userservice的bean,而userservice中则封装了ibatis对数据库的操作。

java关键代码如下所示,getuserservice()用于获取依赖注入的userservice,而userloginconfig()方法用于执行控制器通过多动作参数的调用,并向控制器返回执行结果。

publicclassuserlogincontrollerextendsmultiactioncontroller{publicuserserviceuserservice;publicuserservicegetuserservice(){//获取注入的userservicereturnuserservice;}publicvoiduserloginconfig(httpservletrequestrequest,httpservletresponseresponse)throwsioexception,dataaccessexception{outjsonoutjson=newoutjson();outjson.setresultlist(getuserservice().getnamelist());//验证用户outjson.outjson(request,response);//返回验证结果}}2.4数据持久层数据持久层主要应用ibatisdao调sqlmap,完成对数据库的操作,实现业务逻辑层的调用。

而spring和ibatis实现整合后,事务交于spring统一处理,可以实现事务处理代码和数据库操作代码的分离,从而提高代码的重用性,减少代码量。

整合关键配置如下:

classpath:

jbzbgl\\ibatis\\config\\sqlmapconfig.xml//ibatis配置文件//依赖注入数据源2.5springaop代理应用springaop,可将业务代码和非业务代码(日志、事务处理和异常处理等)进行分离,从而降低两者的耦合性,达到易维护性和重用性。

为减少xml的配置,采用springaop自动代理,其配置如下所示。

2.5.1日志代理此处日志代理类中,实现时间记录的功能。

代码中,id为timehandler的bean采用around通知类型实现advice,而id为timehandleradvisor的bean中参数advice应用ioc依赖注入timehandler。

参数patterns定义了哪些方法需进行日志记录,.*.*表示所有方法均需记录日志,即当业务层调用任一方法时,autoproxycreator均进行拦截并调用timehandleradvisor进行日志和时间的记录,业务代码中无需涉及日志代码。

.*.*2.5.2异常代理异常代理实现原理同日志代理类似,此处仅为数据库操作设置异常代理,因而,参数patterns定义了以select、insert、update和delete为开头的方法可以实现代理。

即,当业务层调用上述方法时,autoproxycreator自动进行监听,抛出异常时进行拦截并处理。

2.5.3声明式事务处理事务处理在应用程序开发中起着至关重要的作用,spring提供了编程式事务处理和声明式事务处理两种方式,为减少事务处理的代码量,此处采用声明式事务处理。

声明式事务处理借助于aop来实现,需要用到开源的aopalliance.jar和cglibnodep.jar。

配置中,id为basetransactionproxy的bean是应用beannameautoproxycreator自动创建事务,通过事务拦截器,实现事务管理。

而id为transactioninterceptor的bean是事务拦截器,通过ioc依赖注入事务管理器transactionmanager,通过transactionattributes参数定义需实现事务管理的方法。

id为interfaceproxy的bean,则通过beannames参数指定需实现事务管理的类。

即,当业务层调用tabgyxxyhxxinterface类时,basetransactionproxy自动为类中涉及以selecte、insert、delete和update开头的方法开启事务管理,业务代码无需涉及事务处理代码。

代码(略)。

3结束语本文对extjs、spring和ibatis3种框架进行了分析,提出了框架集成方案。

结合springmvc的特点、springioc依赖注入机制和springaop面向方面编程,应用示例对集成框架各应用层的实现进行了分析。

该方案在用户体验丰富、开发效率以及易维护性方面有较大优势,但使用此集成框架进行开发时,将产生较多的配置文件,需要在开发指标管理系统时加强管理。

参考文献:

[1]孙伟,王蔚.基于ajax的富客户端技术研究与应用[j].微型电脑应用,2008(3).[2]陆小亮,卞艺杰.基于ajax的富客户端电子商务系统设计[j].武汉大学学报(信息与管理工程版),2011(33).[3]王智君,王时龙,任亨斌,等.基于javaee的aomspringhibernate架构及应用[j].计算机系统应用,2011(20).[4]张鑫,黄灯桥,杨彦强.javascript凌厉开发-ext详解与实践[m].北京:

清华大学出版社,2009.[5]郭锋.spring从入门到精能[m].北京:

清华大学出版社,2006.[6]clintonbegin.ibatissqlmapguide[eb/ol]..

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2