基于SpringCloud微服务的高校学生信息管理系统的设计
作者: 张力
关键词:信息管理;选课管理;Spring Cloud微服务;SpringBoot技术;前后端分离
0 引言
在高校的日常教务管理工作中,学生信息管理是一项非常复杂的任务。管理者需要掌控学生从入学到毕业期间内的所有信息,包括个人资料、选课记录、成绩数据等[1]。其中,选课环节尤为关键,需要着力协调解决教室、教师和学生之间的互补问题,遵循资源最大化的原则[2],使每位学生能根据自己的意愿选择心仪的课程,老师尽可能在规定的教室内完成授课。这一过程复杂性较高,约束条件也较多。借助信息化技术的升级改造,可以对传统的学生信息管理方法进行优化,实现对学生从入学开始产生的所有数据信息的管理,优化教学资源配置,提高学生排课、选课的效率,探索高校学生信息管理的智能化建设。
目前,我国的高校基本上都在推进学生信息管理系统,允许学生通过系统对个人的所有信息进行管理,许多高校都已经在探讨学生信息管理系统的实际建设[3]。袁爱平等人[4]已经在长沙民政职业技术学院中建设了高校信息管理系统,系统采用SSM框架编程实现,高效地收集、检索和维护学生信息,但系统功能上仅维护了学生的基本信息,没有纳入学生的选课、成绩等信息的管理,功能不够完善。唐婷等人[5]借助大数据分布式系统搭建经验,开发了基于大数据处理技术的学生管理信息系统,设计数据源层、数据存储层、数据处理层、应用层,分别完成数据采集、数据存储、数据挖掘、用户交互和可视化功能,以期促进学生管理工作动态化、信息化、科学化发展,但系统功能较少,未能考虑因系统部分功能的修改导致系统无法正常使用的弊端。
截至目前,几乎所有的学生信息管理系统都是基于单体应用开发,导致该类系统的前后端功能代码都集中在一个项目中,在对该类系统进行功能、性能升级的时候,影响了整个系统的正常运行,极大影响了高校日常工作的正常运转[6]。为了解决这一弊端,本文尝试借助Spring Cloud微服务技术[7],将高校学生信息管理系统的功能拆分成相互耦合度极低的单体应用进行开发,借助Spring Cloud微服务提供的不同组件完成单体应用之间的通信与管理,协调完成系统的各项功能运转,对单个单体应用的升级与改造将不会影响其他单体应用,持续为高校学生信息管理提供服务。同时,为了更加快捷地对系统进行运维升级,本文使用Docker容器技术将高校学生信息管理系统部署在阿里云服务器端。
1 系统需求分析
高校学生信息管理系统的使用角色包括三类:管理员、教师和学生,他们对高校学生信息管理系统的需求都不一样,下面将详细介绍3个角色对高校学生信息管理系统的需求,并使用需求分析用例图的形式进行展现。
1.1 管理员需求分析
高校学生信息管理系统的管理员需要对整个大学期间学生产生的信息进行管理,管理的主要对象是教师、学生和课程3个实体,要能够实现对这3个实体的增删改查等基本操作,实现对教师、学生相关信息的有效管理,具体的需求分析用例图如图1所示。
1.2 教师需求分析
教师对高校学生信息管理系统的需求是要实现对个人信息的管理,查看学生选课信息并进行排课,查询授课的选课学生信息,具体的需求分析用例图如图2所示。
1.3 学生需求分析
学生对于高校学生信息管理系统的需求是要能通过系统根据排课信息进行选课,具体细分是要能通过系统查看并修改个人的信息、查看带课老师信息并进行选课、查看选课结果信息,退选已修选课,能够满足学生对于系统的需求,具体的需求分析用例图如图3所示。
2 系统详细设计
2.1 Spring Cloud 微服务
高校学生信息管理系统借助Spring Cloud微服务框架将系统的功能拆分成4个单体功能应用,分别是系统管理、用户管理、选课管理和成绩管理,每一个应用再使用SpringBoot 的技术开发成一个独立的微服务,也就是说每一个微服务提供一个功能单一的服务,比如用户管理微服务就是对系统所有的用户信息进行管理,包括管理员、教师和学生信息,对单个用户信息的管理不影响其他单体应用功能的运行,各微服务之间通过Spring Cloud微服务框架提供的组件进行通信与协调合作,完成高校学生信息管理的全部功能[8]。
2.2 前后端分离技术
在开发系统管理、用户管理、选课管理和成绩管理的微服务过程中,每一个单体功能应用均使用了前后端分离开发技术,后端整合了Swagger框架[9],可以在网页页面中对系统的API接口功能进行实时测试;前端使用Vue.js技术编写网页页面,前后端的数据交互采用Restful风格的接口,接口数据遵循JSON格式规范。这样的技术选型优势在于前后端的开发以及测试都是可以独立进行的,后端接口的测试不再依赖前端项目的运行,前端项目的页面编写也无须等待后端接口开发完成。此外,在后端的项目框架中,还整合了MyBatis-Plus和MyBatis-Generator 组件,可以自动连接MySQL数据库,实现对实体数据的操作和后端代码的自动生成。单体功能微服务使用Shiro技术保证系统的安全,执行用户的身份验证、授权、加密和会话管理。
综上所述,高校学生信息管理系统的整体技术框架图如图4所示。
2.3 Docker 容器部署技术
为了保证高校学生信息管理系统的高并发、易维护的性能需求,需要将系统部署在阿里云服务器端,系统的服务器资源配置为48核CPU处理器,基础频率为2.4GHz,内存容量为128GB,硬盘的容量为64TB,服务器的操作系统使用Linux,提供的网络带宽不低于3 210Gbps,能同时满足200人在线同时使用。在对高校学生信息管理系统进行部署的过程中,采用Docker容器方式进行部署[10],将系统管理、用户管理、选课管理和成绩管理4个微服务打包成镜像文件,推送至Docker容器中,执行部署的命令,即可快捷完成对微服务的部署工作。借助Docker容器的虚拟化部署技术,可以便捷实现对高校学生信息管理系统的改造和升级,当单个单体功能需要修改时,只需要对微服务功能进行代码更改,重新打包推送至Docker容器中,即可实现系统的热部署服务,系统无须中断服务。
2.4 系统功能设计
高校学生信息管理系统针对管理员、教师和学生设计了不同的使用功能,管理员的功能包括学生信息管理、教师信息管理、课程信息管理和成绩报表管理;教师的功能包括学生信息管理、我的课程管理、排课管理和选课成绩管理;学生的功能包括课程管理、成绩管理和个人信息管理,系统整体的功能框架图如图5所示。
3 系统功能实现
管理员可以对全部的学生信息进行增删改查等操作,为了方便进行操作,将新增学生和对学生信息的修改、删除操作进行了分离。在对学生进行新增的时候,需要提供学生的相关信息,这些信息包括:学号、年龄、姓名、身份证号、性别、密码、专业、学院、班级等信息。在对学号进行验证的时候,采用了正则表达式进行验证,需要11位数字,否则视为无效的学号;身份证号也进行验证,当检验学生信息无误后,可以进行添加操作,将学生的信息添加进系统中,如图6 所示。
对于学生信息可以进行修改和删除操作,具体操作如图7所示,可以查看所有学生的详细信息。
学生可以在系统中进行选课,查看选课结果,退选相关课程,查看已修课程,管理个人信息系,如图9 所示。
4 结束语
本文设计并实现了一款基于Spring Cloud微服务的高校学生信息管理系统。系统采用Spring Cloud微服务框架将功能划分成系统管理、用户管理、选课管理和成绩管理4个单体微服务功能,每一个微服务功能使用SpringBoot技术进行实现。每个单体微服务功能都采用了前后端分离技术进行编程,后端整合了MyBatis-Plus、Swagger等组件,方便对逻辑处理程序进行编写,便捷对MySQL数据库进行操作;前端使用Vue.js技术对页面进行编写,前后端使用RESTful风格的JSON数据进行交互。单体微服务功能开发完毕后,使用Docker虚拟化技术进行部署,各微服务之间相互沟通协作,共同对外提供个人信息管理、选课管理、成绩管理、课程管理等功能。这样的技术选型有利于提高代码功能的独立性,减少不同功能之间的耦合,对单个微服务功能的升级与维护不会影响到系统功能的正常运转,极大增加了系统的稳健性。