
温馨提示本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片1. 引言随着高校和培训机构教学规模的不断扩大传统的人工布置、收集和批改作业的方式已经难以满足日常教学管理的需求。教师需要花费大量时间在作业的收发、统计和反馈上学生也常常因为信息不对称而错过提交时间。基于 Java Spring Boot 的在线作业管理系统正是为了解决这些问题而设计开发的一套 Web 应用系统。本系统以 Spring Boot 作为后端核心框架结合前端页面和关系型数据库实现了作业发布、在线提交、自动批改、成绩统计等核心功能帮助教师和学生更高效地完成作业相关的教学环节。2. 系统需求分析2.1 功能需求根据在线作业管理的实际业务场景系统主要面向三类角色管理员、教师和学生。各角色的核心功能需求如下管理员负责用户管理、班级管理、课程管理、系统基础数据维护等。教师可以创建课程、发布作业、查看提交情况、在线批改、录入成绩、发布公告等。学生可以查看作业列表、在线提交作业、查看批改结果和成绩、接收课程公告等。2.2 非功能需求易用性界面简洁清晰操作流程符合用户习惯。安全性用户密码加密存储接口具备权限校验防止越权访问。稳定性系统能够支持一定规模的并发访问保证日常教学使用稳定可靠。可维护性代码分层清晰模块解耦便于后续扩展和维护。3. 系统总体设计3.1 系统架构设计系统采用经典的 B/S 架构前后端分离开发。后端基于 Spring Boot 提供 RESTful API 接口前端通过浏览器访问页面并与后端交互数据统一存储在 MySQL 数据库中。flowchart TD A[浏览器前端] --|HTTP 请求| B[Spring Boot 后端] B -- C[业务逻辑层 Service] C -- D[数据访问层 Mapper] D -- E[(MySQL 数据库)] B -- F[文件存储服务]3.2 技术选型层次技术说明后端框架Spring Boot快速构建独立运行的 Web 应用持久层MyBatis-Plus简化数据库操作提供通用 CRUD数据库MySQL存储业务数据权限认证Spring Security JWT实现登录认证与接口鉴权前端Vue / Thymeleaf页面展示与交互构建工具Maven项目依赖管理与构建3.3 数据库设计系统核心数据表包括用户表、班级表、课程表、作业表、提交记录表和成绩表等。下面以作业表和提交记录表为例说明表结构设计。作业表homework字段名类型说明idbigint主键自增course_idbigint所属课程 IDtitlevarchar(100)作业标题contenttext作业要求描述deadlinedatetime提交截止时间create_timedatetime创建时间提交记录表submission字段名类型说明idbigint主键自增homework_idbigint作业 IDstudent_idbigint学生用户 IDfile_urlvarchar(255)提交文件路径submit_timedatetime提交时间scoreint批改得分commentvarchar(255)教师评语4. 系统核心功能实现4.1 项目结构后端项目采用分层架构包结构如下com.example.homework ├── controller // 接口控制层 ├── service // 业务逻辑层 ├── mapper // 数据访问层 ├── entity // 实体类 ├── dto // 数据传输对象 ├── config // 配置类 └── common // 通用工具与返回结果封装4.2 用户登录与权限控制系统使用 Spring Security 结合 JWT 实现登录认证。用户登录成功后后端签发 JWT 令牌前端在后续请求中携带该令牌访问受保护的接口。RestController RequestMapping(/api/auth) public class AuthController { Autowired private AuthService authService; PostMapping(/login) public ResultString login(RequestBody LoginDTO loginDTO) { String token authService.login(loginDTO); return Result.success(token); } }4.3 作业发布功能教师登录后可以在课程下发布新的作业设置作业标题、要求和截止时间。发布成功后该课程下的学生即可看到作业信息。Service public class HomeworkServiceImpl implements HomeworkService { Autowired private HomeworkMapper homeworkMapper; Override public void publishHomework(HomeworkDTO dto) { Homework homework new Homework(); homework.setCourseId(dto.getCourseId()); homework.setTitle(dto.getTitle()); homework.setContent(dto.getContent()); homework.setDeadline(dto.getDeadline()); homework.setCreateTime(LocalDateTime.now()); homeworkMapper.insert(homework); } }4.4 作业提交功能学生在作业截止时间前可以上传作业文件完成提交。系统会记录提交时间和文件路径并允许学生在截止前重新提交覆盖。PostMapping(/submit) public ResultVoid submit(RequestParam(homeworkId) Long homeworkId, RequestParam(file) MultipartFile file) { // 获取当前登录学生 Long studentId SecurityUtils.getCurrentUserId(); // 保存文件到本地或对象存储 String fileUrl fileStorageService.store(file); // 写入提交记录 submissionService.saveSubmission(homeworkId, studentId, fileUrl); return Result.success(); }4.5 在线批改与成绩管理教师可以查看某次作业的全部提交记录在线打分并填写评语。学生端可以实时查看自己的得分和教师反馈。Service public class SubmissionServiceImpl implements SubmissionService { Override public void grade(Long submissionId, Integer score, String comment) { Submission submission submissionMapper.selectById(submissionId); submission.setScore(score); submission.setComment(comment); submissionMapper.updateById(submission); } }5. 系统测试系统开发完成后对核心功能进行了功能测试和简单的性能测试。测试覆盖了用户登录、作业发布、作业提交、在线批改等主要业务流程验证了权限控制的有效性确保不同角色只能访问自己权限范围内的功能。测试结果表明系统各项功能运行正常能够满足在线作业管理的基本需求。6. 总结与展望本文设计并实现了一个基于 Java Spring Boot 的在线作业管理系统覆盖了作业发布、在线提交、自动批改、成绩统计等核心教学环节有效提升了作业管理的效率。系统采用前后端分离架构代码分层清晰具备良好的可扩展性和可维护性。在后续的迭代中可以考虑引入以下能力接入消息通知服务在作业发布和截止前自动提醒学生增加作业查重功能辅助教师判断作业是否存在抄袭引入更细粒度的权限模型支持助教协助批改等场景进一步提升系统的实用性和智能化水平。