1. 系统架构设计与技术选型
1.1 为什么选择SpringBoot+SSM组合
在开发教育类管理系统时,技术栈的选择需要同时考虑开发效率和系统性能。我们最终采用SpringBoot+SSM的组合架构,主要基于以下考量:
- 快速迭代需求:SpringBoot的自动配置特性让开发团队能在1周内完成基础框架搭建,相比传统SSM项目节省约60%的初始化时间
- 教学场景特性:作业评价系统存在明显的学期周期性访问高峰,Spring的IoC容器管理bean生命周期,配合MyBatis二级缓存,实测可承受500+并发查询请求
- 前后端分离实践:虽然系统支持JSP传统模式,但通过预留RESTful接口,后续可无缝切换Vue等前端框架
实际开发中发现,SpringBoot 2.7.3版本与MyBatis 3.5.6存在事务注解兼容性问题,建议使用SpringBoot 2.5.12稳定版
1.2 数据库设计关键点
作业评价系统的数据模型设计有几个特殊考量:
sql复制CREATE TABLE `t_submission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`student_id` varchar(20) NOT NULL COMMENT '学号',
`hw_version` int(11) NOT NULL DEFAULT '1' COMMENT '作业版本号',
`file_path` varchar(255) DEFAULT NULL COMMENT '附件OSS路径',
`submit_time` datetime NOT NULL COMMENT '提交时间',
`auto_score` int(11) DEFAULT NULL COMMENT '自动评分(如查重)',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_student_version` (`student_id`,`hw_version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
- 版本控制设计:通过hw_version字段实现作业多次提交的版本管理
- 文件存储策略
