# task5-Springboot-JWT **Repository Path**: fffsssa/task5-springboot-jwt ## Basic Information - **Project Name**: task5-Springboot-JWT - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-11 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生选课系统 这是一个基于Spring Boot的简单学生选课系统,实现了学生、课程和选课关系的管理功能。 ## 功能特性 - 学生信息管理(增删改查) - 课程信息管理(增删改查) - 学生选课功能 - JWT登录认证 - 用户账户与学生信息关联 - 数据持久化(H2嵌入式数据库) - 在线API文档(Swagger) ## 技术栈 - Spring Boot 3.2.3 - MyBatis-Plus - H2数据库 - JWT认证 - Spring Security - Thymeleaf模板引擎 - Swagger API文档 ## 系统架构 ### 实体关系 - **Student(学生)**:学生基本信息(学号、姓名、年龄、邮箱等) - **Course(课程)**:课程基本信息(课程号、名称、教师、学分等) - **User(用户)**:登录账户信息,与学生一对一关联 ### 认证机制 - 使用JWT进行无状态认证 - 每个登录账户关联一个学生 - 用户只能为自己关联的学生选课 - 所有API需携带有效的JWT令牌访问 - JWT包含学生ID和学生姓名,有效期1小时 ### API接口 - `/api/students` - 学生管理相关接口 - `/api/courses` - 课程管理相关接口 - `/api/enroll` - 学生选课接口 - `/api/enrollments` - 查询所有选课情况 - `/auth/login` - 用户登录接口 - `/auth/register` - 用户注册接口 ## 启动说明 1. 确保安装Java 17+ 2. 运行 `mvn spring-boot:run` 3. 访问 `http://localhost:8080` 查看应用 4. 访问 `http://localhost:8080/swagger-ui.html` 查看API文档 ## 初始化数据 系统启动时会自动初始化一些测试数据: - 创建默认用户账号(密码均为"123456") - 每个用户关联一个学生 - 可通过 `/api/init/students` 和 `/api/init/courses` 接口重置测试数据 ## 安全特性 - 密码使用BCrypt加密存储 - JWT使用HS256算法签名 - 请求头Authorization携带Bearer Token - 严格的权限控制,用户只能操作自己关联的学生数据