王伟勍
摘要:该文介绍了一种基于Spring框架设计实现的教学管理系统。该系统在后端使用成熟的Spring框架集成Redis与MySQL数据库接口,与前端页面进行可跨域的JSON数据交互,进而实现不同身份角色的登录权限验证、表单的申请与审批、成绩录入与审批、工资条明细展示、教学资产登记与报修等功能,从而满足一般的教学管理要求。
关键词:Spring框架; 教学管理; JSON数据; 应用软件
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)11-0069-02
1 引言
现代学校的教学管理已经逐步摆脱了传统的单纯依靠教学秘书、教师、辅导员等教职工结合少量学生干部对广大学生进行组织规制的方式,随着社会节奏的加快与教师、学生社会身份的多元化,尤其在此次新冠肺炎疫情的影响下,线上线下相结合的教学方式已经成为当前解决教学管理问题的主流思路。此外,学生在教学过程中的参与程度和主动性正在大幅提高,典型的如翻转课堂、借取场地组织活动、报修宿舍用品等;同时,教职工在进行教学管理的过程中经常会遭遇如教具损坏或过于陈旧、科研教研项目申请不能及时得到审批、因人事和档案关系变动造成的待遇变动等情况,以上问题无疑给教学管理带来了新的挑战。
为尝试解决这些关乎教职工和学生切身利益的问题,本文设计并实现了一款基于Spring框架的教学管理系统,充分借鉴了现代企业管理中常用的OA办公系统,将需要领导参与的事务抽象为表单的申请与审批流程,这样后端系统便能根据表單属性和领导对应的身份角色自动将表单送达至相关领导,大大缩减了相关事务的处理时间。此外,本系统还将常见的学生成绩录入与审批、工资条明细展示等功能融入进来,力图使系统更加完备。
2 基本结构
设计开发中使用的工具软件为Eclipse。应用Spring框架的集成能力,结合Security模块的权限验证功能、Redis的内存级高速缓存功能与MySQL的快速持久化功能,在实现设计功能的同时使系统具有初步的抗高并发访问能力。
前端页面使用Vue3.0技术开发,设计五个主要页面,对应登录与退出、表单的申请与审批、成绩录入与审批、工资条明细展示、教学资产登记与报修等五个主要功能,用户可根据需要,在登录后切换功能页面。
后端程序对应功能页面进行模块式开发,Security模块对应登录与退出页面,结合CAS工具包实现用户的单点登录。登录到系统内部后,用户会获得对应的身份令牌,并根据令牌信息判别相应权限,如学生的身份令牌只能填写申请教室的表单或报修宿舍设施,而教师则在此基础上又可以进行成绩录入、查看工资条等操作。而一旦用户点击退出按钮,后端程序立即在Redis缓存中清除相应的令牌信息,以此禁止未登录用户的操作。
对其他四个功能页面,首先将后端程序划分为REST、Service和Dao三个层次,并按相应功能在三个层次中划分出对应的功能模块,从而完成模块式开发。从层次的角度上看,REST层直接与前端页面交互,但在交互过程中需要调用Service层进行数据的具体处理,而后者则要调用Dao层获取具体数据。综上,系统的结构框图如图1所示。
3 程序设计简述
3.1 数据库表设计
根据面向对象的程序设计思路,将教职工与学生统一抽象为用户类,有用户名、密码、姓名、年龄、性别、身份、权限等属性。在处理具体业务时,根据身份、权限等属性确定与之关联的数据库表,由此实现不同功能。简要的数据库表关系如图2所示。
3.2 Security模块
使用Spring开源代码中的Security工具包构建一连串过滤器链,包裹在SpringMVC核心外部,并利用配置文件和Authentication Filter等过滤器类对来访用户进行身份认定和鉴权,并提供登录和登出功能。
当用户执行登录操作时,Security模块会根据用户名和密码到用户表中查询是否存在及正确,从而判断是否通过验证。如果通过则在Redis缓存中存入一个专属令牌(Token),并将此令牌交互给前端页面存入Cookie,后续操作仅验证令牌值是否正确或过期,从而省去重复查询MySQL数据库的过程,提高响应效率。
3.3 REST层
REST是表述性状态传递的英文单词缩写,其本质是一种软件编程风格,本文使用根据其开发的JSON数据格式实现前后端数据交互。接到前端的数据请求后,REST层中的相应接口会解析出具体的数据要求,而后调用Service层中的服务方法,得到已经按结构要求封装的数据,而后REST接口将其重新转换为JSON数据,回传给前端页面。
3.4 Service层
在接到REST层的数据请求后,Service层中的方法会根据业务逻辑和所给参数调用Dao层中的接口,对MySQL数据库中的库表进行增删改查操作。得到返回值后,相应的服务方法会对数据进行排序、拼装、格式转换等处理,最终将结果返回给REST层,完成一次调用。
3.5 Dao层
Dao实际上是数据访问对象的英文简称,设计此层的目的是封装对数据库的访问操作,从而与具体的业务逻辑区分开。本文使用MyBatis工具包将MySQL数据库抽象封装为可供Spring框架调用的类和方法,并将驱动、连接、关闭和操作数据库的SQL代码改造为可替换参数的动态语句,从而提高访问效率、降低访问错误。
4 各界面简述
4.1 登录界面
登录界面采用响应式布局,包含用户名、密码和验证码的输入文本框,注册和登录按钮,以及可供勾选的记住密码选项框。
4.2 表单申请与审批界面
该界面包含事假、项目经费、差旅报销等常用的十三项申请表单,以及一项自定义表单。在页面中部采用组件列表的形式展示已申请表单的审批进度。对于相关审批人员,接到表单后,会在页面右上角进行表单数量提示。
4.3 成绩录入与审批
该界面主要提供下辖学生的详细列表,并可按专业、班级、科目等类别进行统计展示,以及学生成绩的线上和Excel模板上传两种录入方式。页面下侧对教学秘书和院系领导提供成绩修改与确认按钮。
4.4 工资条明细
该界面主要展示当前教职工自入职以来的工资明细情况,并提供Excel文件下载。
4.5 教学资产登记与报修
该界面对后勤人员展示现有教学资产的明细情况,对已报修的资产,可进一步展示修理进度。对教师、辅导员、学生等提供报修选项,供其填写报修资产的损坏情况。
5 结束语
本文研究设计的基于Spring框架的教学管理系统采用了当前主流的前后端分离的设计方法,使用Spring框架集成Security、CAS、MyBatis等工具包实现单点登录、数据库操作、数据缓存等操作,从而完成能够提供JSON数据服务的后端程序开发。对于前端页面,本文采用流行的Vue3.0技術进行开发,设计了五个主要页面,从而实现登录与退出、表单的申请与审批、成绩录入与审批、工资条明细展示、教学资产登记与报修等五个主要功能。
当然,本系统在设计上仍然存在一定缺陷,在使用Python脚本进行高并发访问测试时发现系统对大流量访问的响应仍不理想,前端界面相对于主流OA系统也稍显简陋。但根据目前的调研结果,在本系统的基础上进行界面和高并发性能上的优化,并根据用户体验做进一步调整后,相信能够取得更大的应用价值。
参考文献:
[1] 闫海发,闫楠,郭亚川,等.基于机智云物联网智能家居系统[J].电子世界,2018(2):8-10.
[2] 李文杰.基于SSM框架的高校信息采集与管理系统[J].信息记录材料,2019,20(10):144-145.
[3] 潘承昌,吴恋,刘远珍,等.基于SSM的商品智能推荐系统的开发研究[J].物联网技术,2018,8(7):73-75,77.
[4] 冯传波,彭章友,张钟浩.基于Vue.js的移动应用可视化平台的研究[J].工业控制计算机,2019,32(5):102-103.
[5] 朱二华.基于Vue.js的Web前端应用研究[J].科技与创新,2017(20):119-121.
[6] 柴青山.基于MVVM模式的Vue.js框架在物流软件自动化测试系统中的应用研究[D].北京:北京邮电大学,2019.
【通联编辑:李雅琪】