项目简介
基本功能
学生信息管理,增删改查,以及文件备份,批量注册,前后端同时校验数据,将异常数据响应给用户。
用户信息管理,对于角色控制,用户状态的控制。
课程信息管理,课程相关管理。
公告管理,发布最新的教务动态,或者教务系统公告。
采用前后端分离式开发,采用现阶段流行技术实现,例如:SpringBoot、Spring、SpringMVC、MyBatis。
核心功能:
定时开放与关闭选课系统,定时开放采用redis中的键过期时间控制;系统关闭采用线程池中ScheduledThreadPoolExecutor来设置计划任务。
用户并发选课控制,采用异步处理,并且使用缓存层Redis记录相关信息,同时采用aop编程思想,在第一次请求选课接口时,加载redis中lua脚本文件(只会加载一次)。
技术选型
后段部分
SpringBoot,作为整个管理容器
SpringSecurity,一个强大的权限控制框架,与Spring的兼容性好一些相比于shiro。
MyBatis,ORM框架
PageHelper,分页插件
Hibernate-Validator,验证框架
ActiveMQ,消息队列
Redis,分布式缓存
Druid,数据库连接池
FastJson,json序列化方式
easyexcel,操作excel
Lombok,简化pojo对象
OSS,对象云存储,采用腾讯云对象存储
前端部分
node.js
Vue
ElementUI,前端组件库
axios,异步请求,比ajax要轻量级一些。
echarts,报表
wangeditor,网页轻量级编辑器
router,路由配置
store,全局对象存储
运行截图
登录页面:
![](https://img-blog.csdnimg.cn/img_convert/4e9d3b255685d8709fbc814c4dac540b.png)
首页:
![](https://img-blog.csdnimg.cn/img_convert/58a0c3a8590f97b11adfeb98cc879f84.png)
学生信息管理部分:
![](https://img-blog.csdnimg.cn/img_convert/0cd0f278b0c0b764614901e1a4056c35.png)
用户管理部分:
![](https://img-blog.csdnimg.cn/img_convert/16ad6923f862fd41149b950975db6a12.png)
管理员开放选课系统:
![](https://img-blog.csdnimg.cn/img_convert/e16ed719b227823d69e53d755c90a5fe.png)
学生选课:
![](https://img-blog.csdnimg.cn/img_convert/2f0a0c8d40fda4bb54c4c8a9670ce5c2.png)
后端项目结构
├─main
│ ├─java
│ │ └─com
│ │ └─xust
│ │ └─sims
│ │ ├─dao -- 数据访问层
│ │ ├─dto -- 数据转换对象,一般为不能和数据库表直接建立联系的对象
│ │ ├─entity -- 实体对象,一般为能直接和数据库表建立联系的对象
│ │ ├─exceldatalistener -- 处理excel表相关的实体类
│ │ ├─receiver -- 中间件相关的配置和服务
│ │ ├─serialize -- 序列化方式
│ │ ├─service -- 业务逻辑层
│ │ ├─utils -- 工具类
│ │ └─web -- 与web相关
│ │ ├─aspect -- 切面配置
│ │ ├─config -- 配置类
│ │ ├─controller -- 控制层
│ │ └─exception -- 自定义异常
│ └─resources
│ ├─mapper -- MyBatis对应的xml文件,要和一个接口共同组成一个映射器
│ ├─static -- 静态资源
│ └─templates -- 模板
└─test -- 测试对应的包
└─java
└─com
└─xust
└─sims
├─dao
└─service