1. 项目背景与核心需求
作为郑州工商学院的一名技术负责人,我经常收到学生关于学习资料获取不便的反馈。传统QQ群文件共享方式存在资料过期、版本混乱、检索困难等问题。去年我们调研了市面上常见的开源网盘系统,发现它们要么功能过于复杂,要么缺乏针对教育场景的优化。于是决定基于SpringBoot+Vue技术栈,开发一个轻量级但功能完备的校园学习资料分享平台。
这个平台需要解决几个核心痛点:
- 院系/专业/课程三级分类体系,支持PDF/PPT/DOCX等常见教学文档格式
- 基于Elasticsearch的全文检索,支持按课程代码、教师姓名等多维度筛选
- 用户权限分级(学生/教师/管理员),教师可设置资料下载权限
- 集成学院统一身份认证,避免额外注册流程
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 后端技术选型
采用SpringBoot 2.7作为基础框架,主要考虑因素:
- 内嵌Tomcat简化部署,与学院现有的JavaEE环境兼容
- 自动配置特性大幅减少XML配置,比如通过
@EnableElasticsearchRepositories一个注解即可集成ES - 完善的文档生态,遇到问题容易找到解决方案
关键依赖配置示例:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.34.0</version>
</dependency>
2.2 前端技术方案
使用Vue3+Element Plus构建管理后台,主要优势:
- 响应式布局完美适配学院机房的老旧显示器
- 基于角色的动态路由配置,不同身份看到不同功能模块
- 采用axios拦截器自动处理401跳转到统一认证页面
一个典型的文件上传组件实现:
javascript复制<template>
