1. 项目背景与核心需求
这个学生作业管理系统源于我在指导计算机专业毕业设计时的常见需求场景。每年毕业季,高校计算机系学生面临的最大痛点之一就是如何将所学的Java和SpringBoot技术整合到一个完整的、可演示的系统中。作业管理看似简单,实则涵盖了从用户权限、文件上传到数据统计的完整业务流程。
系统需要解决三个核心问题:
- 教师端:布置作业、批改作业、统计成绩的完整工作流
- 学生端:查看作业、提交作业、查询成绩的闭环体验
- 管理端:课程管理、用户管理、系统监控的基础功能
2. 技术选型与架构设计
2.1 为什么选择SpringBoot 2.7.x
在2023年的Java生态中,SpringBoot 2.7.x是兼顾稳定性和新特性的理想选择。相比最新的3.x版本,2.7.x有更丰富的社区解决方案,对毕业设计这类需要快速验证的项目特别友好。具体到本系统:
- 内置Tomcat 9.0避免了繁琐的服务器配置
- Starter依赖简化了作业文件处理(spring-boot-starter-web)
- Actuator端点方便实现简单的系统监控
2.2 数据库设计要点
使用MySQL 8.0作为主数据库,关键表结构设计如下:
sql复制CREATE TABLE `assignment` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`description` text,
`deadline` datetime NOT NULL,
`course_id` bigint NOT NULL,
`attachment_url` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
特别注意:作业附件采用单独字段存储URL而非BLOB类型,这是考虑到学生作业可能包含多种格式文件。
3. 核心功能实现细节
3.1 文件上传与下载
文件处理是作业系统的核心难点,采用分层存储策略:
- 小文件(<10MB):直接存储到服务器本地
- 大文件:使用MinIO对象存储方案
关键
