贺建英,李茹钰,谭琳,杨肖满,乔运迅
(四川文理学院计算机学院,四川达州635000)
摘要:使用SpringMVC作为基础开发框架,针对大型数据模型的服务平台,利用Java反射机制开发泛型数据持久层和服务层,大批量简化这两层重复性代码的编写,缩短开发周期,降低BUG出现的概率,提高系统在后期的可维护性。结合拥有庞大用户的微信平台,利用开放接口服务(OpenAPI)进行二次开发,搭建出为各个高校服务的便捷服务平台。
教育期刊网 http://www.jyqkw.com
关键词 :SpringMVC;OpenAPI;泛型框架;微信公众服务;微校城;便捷服务
中图分类号:TN711?34;TP311 文献标识码:A 文章编号:1004?373X(2015)17?0049?04
0 引言
目前全国高校共计有2 198所,在校大学生人数逾2 400 万,这些学生的业余生活既丰富多彩,又显得凌乱,无统一的管理平台,同时这2 400 万学生也是一个庞大的消费市场,在《大学生蓝皮书:中国大学生生活形态研究报告(2013)》中指出,当前大学生的月消费已经达到了上千元,一年的消费超过了万元。大学生的消费能力在不断上升。
以高校学生的课余生活网络服务平台为研究对象,将校内社团、班级特色展示、便捷生活、校内迷你创业等整合,解决服务平台种类繁多和散乱的弊端,采用J2EE技术,结合微信公众平台、网络爬虫、数据挖掘等技术进行研究和设计。本项目的开展,以实验论证为基础,以计算机数据结构、数据挖掘等理论为依托,提高软件在计算机和手持设备上的兼容性为创新,致力于研发适合为各高校学生服务的通用型网络平台,使学生在不同的终端设备上更好地享受快捷服务,且本平台能产生可观的经济效益。
1 底层基础架构(SpringMVC)
SpringMVC框架实现了Model?View?Controller模式,方便地把数据模型、业务处理与表示层进行分离。从这个角度来说,SpringMVC 和Struts,Struts2 非常类似。SpringMVC 的设计是围绕DispatcherServlet展开的,Dis?patcherServlet负责将请求派发到特定的Handler。通过可配置的HandlerMappings,ViewResolution,Locale 以及ThemeResolution 处理请求并且转到对应的视图。
SpringMVC请求处理流程如图1所示。
图1 中SpringMVC 的整体流程是用户向服务器发出请求,被Spring前端控制ServeltDispatcherServlet所捕获;DispatcherServlet对请求的URL地址进行解析,得到相应的URI 地址,再调用HandlerMapping 获得Handler配置所有相关的对象(包括Handler对象及该对象所对应的拦截器),最后以HandlerExecutionChain 对象的形式返回;DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter;提取Request中的模型数据,填充Handler 入参,开始执行Handler(Controller);Handler执行完成后,向DispatcherServlet 返回一个ModelAnd?View对象;根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring 容器中的ViewResolver)返回给DispatcherServlet;ViewResolver 结合Model和View渲染视图,将渲染生成的结果返回到客户端浏览器。
2 使用反射机制实现泛型框架
“微校城”便捷服务平台是一个大型的综合性业务集成服务平台,由多个子系统统一组合而成的门户型服务网站,因而其中数据模型对象非常繁多。而对数据模型的持久化操作(即CRUD操作)大部分代码基本相同,如果在开发过程中大量书写重复性代码,将使得开发效率大幅度下降,程序中的总体出错率上升,系统维护难度增加等。本平台在开发过程引入反射机制实现泛型框架,其过程如图2所示。
在本系统中,使用反射机制实现泛型框架的方式进行开发,提高了软件设计的可重复性复用。当前在国内多数软件的复用率并不高,复用的好处在于可以得到较高的软件生产效率,降低开发成本、提高软件的质量以及改善系统的可维护性,在图2 中A 为具体的数据模型,即数据表对象。
通过Java反射机制,并结合设计模式中的“抽象工厂模式”,将所有数据持久层、服务层中的基本CRUD操作统一封装至一个接口及其实现类中,作为所有数据模型对象的基类,并利用Spring的@Resource注解统一将JdbcTemplate服务注入该基类中。开发时,只须简单的几行代码即可将具体数据模型的CRUD操作全部注入,无需再重新编写这部分代码。
根据图2所示,所有数据模型都可以按照A.java类的方式类进行开发,从而大幅度提高了四个基类的重复利用率,减少了数据持久层中的所有CRUD操作代码和服务层中的所有基本CRUD 操作方法。利用以上泛型开发方式,在本微校城便捷服务平台中减少了至少70%的代码量的编写,提高了开发效率,同时也降低了系统后期的维护难度,使开发人员的开发重点转移至了业务的处理上。
3 开放接口服务(OpenAPI)
OpenAPI是当前比较流行和能有效提高开发效率的一种典型应用。网站服务提供商将各自的网站服务封装成一系列的API 接口开放出去,供第三方开发者免费或者付费使用,把他们所开放的API 称作OpenAPI(开放API),一方面由于信息联合的需要;另一方面是来自利益驱动使得OpenAPI自然而然的出现了。OpenAPI提供的基本架构如图3所示。
利用OpenAPI提供商提供的接口服务,实现互联网中自定义的个性化服务,吸引更多的用户,提高用户在平台的滞留时间和互动程度,同时利用OpenAPI开发服务,大幅度降低了开发成本,缩短了开发周期,开发者只需按照给出的开发规则,快速而高效地完成复杂的业务处理和开发,这便是OpenAPI发展最大的引擎动力。对于一个设计比较好的软件数据或服务平台,基本都会存在自己的OpenAPI,这些OpenAPI中有价值的部分接口被官方开放出来,供第三方开发者对其进行再次开放,从而提高了数据和服务的价值和重用性。当然也有部分OpenAPI却未被开放出来,但因系统平台的原因,这部分接口依然是存在的,当需要这部分接口时,即可通过其他方式捕获这部分数据接口进行更深层次的开发。互联网中常见的OpenAPI有:天气预报开放接口、火车余票查询接口、快递查询接口、车辆违章查询和基站查询等。
4 微校城服务平台的设计与实现
在现今的微信时代,要想成为市场上一个较实用的系统,就必须要有其可取之处。高校便捷模块作为高校便捷服务平台微校城的核心模块,主要采用当前最为流行的微信公众平台技术进行开发,高校便捷功能模块淋漓尽致的将其便捷之处表现在手机微信平台的使用上,其主要功能为四六级查询、火车票查询、快递查询等。每一项都是高校学生生活中不可缺少的一部分。从另一个方面来看,在这个互联网时代,大学生科技生活也必不可少,然而目前大部分高校并未把移动互联网技术使用在学生的生活中。而在高校便捷服务的各个功能,只需要简单的几步便可解决学生贴切的生活问题,当然平台只是单一的便捷肯定是不具有说服力的,高效便捷服务最为吸引人的地方便是用最少的流量来完成反复的功能查询等,它主要是通过手机网络发送语音短信、视频、图片和文字命令,本系统二次开发的微信公众平台将根据命令发送相应的结果,这样就避免了传统的手机网页浏览,反复刷新这一过程,大大的节省了流量。高校便捷模块作为高校便捷服务平台的核心模块,也必须具有服务平台的特性,如基于SpringMVC框架灵活性强、良好的可扩展性等。可扩展性体现在具有操作权限的用户可以直接在微信公众平台自定义菜单进行模块式开发,如本平台后期开发的使用手机实现命令查询成绩功能,减轻学校服务器因庞大的访问量出现的网络堵塞情况。
根据分析,“微校城”平台主要设计了快捷生活、校园服务、高校社团、高校交流、校城网购等几个功能模块,如图4所示。
便捷生活功能主要用于手机微信平台,查询四六级成绩,火车票查询,快递查询及招聘信息等的功能实现。
校园服务功能为班级和班级中的每个同学服务,记录他们的相关信息。
高校社团模块主要针对高校社团的管理问题,使社团的管理和日常工作有一个公共管理和交流平台。高校交流功能是为满足各高校学生注册到微校城平台后能与其他高校的同学进行直接交流,打破缄默和传统的交流方式。
校城网购功能是为大学生创业提供平台,进行实名制注册,解决学校管理难的问题。
当然,在微校城平台的主要功能模块中又细分了子模块,在此就不再一一讲解。
5 微信公众服务平台
移动网络正悄然改变和影响着人们的生活方式,如微信的应用,使得交流的方式更加便捷。微信主要在手机上使用,通过微信在网络上发送语音短信、视频、图片和文字,另外微信还提供了准确定位,分享资源等功能。无论是个人或者企业都可以在微信平台上建立公共交流平台。本系统结合Java版微信公众服务平台,设计图如图5所示,进行设计开发。
微校城的用户群体为在校大学生,微信在这个群体中的普及度和使用度很高,因此在系统中加入微信公众服务平台,更利于本平台的应用及知名度推广,从而达到更大的商业数据。利用以上的原理结构图,设计出高校便捷服务平台的微信公众服务端,吸引更多的在校大学生使用微校城平台。
6 总结与展望
本文重点研究基于微信公众平台和SpringMVC 泛型架构的高校便捷服务平台(微校城),由于高校大学生需求越来越多,具有一定特色的问题渐渐开始突出,故构建一个高校便捷服务平台在所难免,通过对高校学生的调查与分析,基于微信公众平台,能够使更多用户参与使用,并且随着微信的发展和普及,很大程度上使高校便捷服务得以宣传和推广,而基于SpringMVC的模式下,就开发者而言,在很大程度上提高了代码的复用率,减少了代码的编写量,从而实现项目后期的易维护性和易扩展性等。本平台的特色成果主要体现在以下几点:(1)通过分析我国互联网与微信公众平台的现状,实现了基于微信公众平台的高校便捷服务。
(2)为了使广大高校学生能够便捷地享受特色化的服务,实现了一些特色功能,例如:四六级查询、火车票查询、快递查询等。
(3)基于SpringMVC泛型架构,采用此技术构建并实现了本项目,使项目更可靠,更易维护、易扩展。(4)基于用户的使用群体分析,该项目减少了用户手机流量,增加了用户反复查询功能,使用户有较好的用户体验。
在接下来的研究工作中,可继续对基于微信公众平台和SpringMVC 泛型架构的高校便捷服务进行功能性的扩充,使项目的功能更加完善和丰富。同时也将对用户体验部分作出深入的研究,将用户拉入到研究中来,从而增强项目与用户之间的交互和互动,使用户体验更好,这是以后深入探讨的方向。
教育期刊网 http://www.jyqkw.com
参考文献
[1] 张瑞青,李铁柱.基于SpringMVC的用户登录系统的设计与实现[J].科技信息,2012(10):246?247.
[2] 邵钢.基于Spring框架的MVC 控制器的优化与改进[D].济南:山东大学,2011.
[3] 计文柯.Spring技术内幕:深入解析Spring架构与设计原理[M].北京:机械工业出版社,2010.
[4] 徐静.微信对大学生社交的影响[J].新闻传播,2013(2):39?40.[5] 张宇,王映辉,张翔南.基于Spring的MVC框架设计与实现[J].计算机工程,2010,36(4):59?62.
[6] 谢征.官方微信及其在报刊媒体中的运用[J].出版发行研究,2013(9):72?76.
[7] 苗晓辉.基于J2EE 的数据持久化的研究和实现[J].计算机工程,2007(5):272?274.
[8] 孟晨,赵春亮,张建国.泛型DAO模式在Java Web开发中的应用[J].计算机应用与软件,2012(1):175?177.
[9] 李森,马琰.Java泛型的研究与应用[J].硅谷,2008(3):22?23.