基于springboot的学生宿舍管理系统
·
以下内容基于学生宿舍管理系统的常见技术实现方案整理,提供技术栈、功能设计、数据库及测试的完整框架参考。
技术栈选择
后端框架
Spring Boot 2.7.x + Spring MVC + MyBatis/MyBatis-Plus
JDK 1.8及以上版本,Maven 3.6+依赖管理
前端框架
Thymeleaf/Vue.js 3.x + Element Plus(二选一)
Bootstrap 5.x(若选择传统模板引擎方案)
数据库
MySQL 8.x 或 PostgreSQL 14.x
Redis 6.x(用于缓存高频访问数据如宿舍空床位信息)
安全控制
Spring Security + JWT 实现角色鉴权
BCrypt 密码加密存储
辅助工具
Lombok简化代码,Swagger 3.0接口文档,Logback日志系统
功能模块设计
权限管理模块
- RBAC模型设计:超级管理员、宿管员、学生三级角色
- JWT token有效期动态配置
- 密码强度校验策略
宿舍管理模块
- 楼栋/房间/床位三级结构维护
- 批量导入宿舍数据(Excel模板支持)
- 可视化床位状态看板(占用/空闲/维修中)
学生管理模块
- 学生信息CRUD(关联学工系统API可选)
- 自动分配床位算法(按班级/性别/专业优先级)
- 换宿申请审批流
访客管理模块
- 预约登记二维码生成
- 黑名单拦截功能
- 访客记录留存(包含人脸识别日志)
设备报修模块
- 工单状态跟踪(待处理/维修中/已完成)
- 维修评价系统
- 故障分类统计报表
数据库ER图核心表
-- 学生表
CREATE TABLE `student` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT,
`student_no` VARCHAR(20) UNIQUE NOT NULL,
`name` VARCHAR(50) NOT NULL,
`gender` ENUM('M','F') NOT NULL,
`class_id` BIGINT,
`bed_id` BIGINT,
`password` CHAR(60) NOT NULL
);
-- 床位表
CREATE TABLE `bed` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT,
`room_id` BIGINT NOT NULL,
`bed_number` VARCHAR(10) NOT NULL,
`status` ENUM('AVAILABLE','OCCUPIED','MAINTENANCE') DEFAULT 'AVAILABLE',
UNIQUE KEY `uk_room_bed` (`room_id`,`bed_number`)
);
-- 报修工单表
CREATE TABLE `repair_order` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT,
`student_id` BIGINT NOT NULL,
`device_type` VARCHAR(50) NOT NULL,
`description` TEXT NOT NULL,
`status` ENUM('PENDING','PROCESSING','COMPLETED') DEFAULT 'PENDING',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP
);
测试方案
单元测试
- 使用JUnit 5 + Mockito
- 重点测试床位分配算法、密码加密逻辑
- 示例测试用例:
@SpringBootTest
public class BedServiceTest {
@Autowired
private BedService bedService;
@Test
@Transactional
void testAssignBed() {
Long studentId = 1L;
Bed bed = bedService.assignBed(studentId, Gender.MALE);
assertNotNull(bed);
assertEquals(BedStatus.OCCUPIED, bed.getStatus());
}
}
集成测试
- TestContainers运行MySQL Docker容器
- Postman测试API链式调用(登录→申请换宿→查询进度)
- 并发测试使用JMeter模拟100用户同时提交报修
前端测试
- Jest测试Vue组件(若选用Vue方案)
- Cypress端到端测试审批流程
典型项目结构参考:
src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── dorm/
│ │ ├── config/ # 安全/Redis等配置
│ │ ├── controller/ # 按模块划分
│ │ ├── service/ # 业务逻辑层
│ │ └── entity/ # 数据库实体
│ └── resources/
│ ├── static/ # CSS/JS文件
│ └── templates/ # Thymeleaf页面
└── test/ # 测试代码









更多推荐



所有评论(0)