# dms-spring **Repository Path**: xufuhan/dms-spring ## Basic Information - **Project Name**: dms-spring - **Description**: 宿舍管理系统后端 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-10 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目简介 预览图片见dms-vue 本项目 **DMS(Dormitory Management System,寝室管理系统)** 基于 Spring Boot 搭建,采用前后端分离 / 多模块结构,用于实现对寝室、学生及相关业务的统一管理与维护,提高校园宿舍管理效率与信息化水平。 项目采用 Maven 多模块结构: - **根模块 `DMS`**:统一依赖管理与版本控制。 - **子模块 `base-common`**:封装通用返回结果、状态码等工具类。 - **子模块 `base-web`**:Web 应用主体,包含业务逻辑、接口控制层、持久层等。 > 提示:如果你是第一次接触该项目,建议重点从 `base-web` 模块的 `src/main/java` 目录开始阅读。 ## 功能概述 > 由于仓库中主要为后端代码,以下为基于“寝室管理系统”典型需求的功能概述,可根据实际实现情况再做微调。 - **用户与权限管理** - 用户登录 / 注销 - 角色权限(如管理员、宿管、学生等) - JWT 令牌校验与会话维护 - **寝室信息管理** - 宿舍楼 / 房间信息维护 - 寝室分配与调换 - 寝室状态(在住 / 空置 / 维修中)维护 - **学生信息管理** - 学生基础信息维护 - 学生入住 / 退宿登记 - 学生与寝室的绑定关系 - **考勤与违纪记录(如有)** - 夜不归宿记录 - 违规用电、违禁物品记录 - 统计报表导出 - **系统辅助功能** - 统一的接口返回格式 - 全局异常与状态码管理 - 接口文档(Swagger)支持 ## 技术栈 - **后端框架** - Spring Boot 2.4.4 - Spring MVC - MyBatis-Plus(简化 MyBatis 持久层开发) - **数据库与数据源** - MySQL(使用 `mysql-connector-java` 驱动) - Alibaba Druid 数据源与连接池 - **工具与组件** - Lombok:简化实体类和日志代码 - Fastjson:JSON 序列化 / 反序列化 - Kaptcha:图形验证码(用于登录等场景) - Java JWT:登录令牌与鉴权 - Swagger(springfox-boot-starter):自动生成接口文档 ## 模块说明 - **`base-common` 模块** - 位置:`base-common/src/main/java/com/qf` - 主要内容: - `ResultVo`:统一返回结果对象 - `ResultUtil`:返回结果构建工具类 - `StatesCode`:业务状态码定义 - 作用:为所有业务模块提供统一、规范的返回格式和状态码管理,降低重复代码。 - **`base-web` 模块** - 位置:`base-web/src/main/java` - 主要内容(根据常规项目结构推测): - Controller:对外暴露的 REST 接口 - Service:业务逻辑处理 - Mapper / DAO:数据库访问层(结合 MyBatis-Plus) - Entity / DTO:实体与数据传输对象 - Config / Interceptor:全局配置(如登录拦截、跨域配置、Swagger 配置等) - 作用:承载寝室管理系统的全部核心业务逻辑,是系统的主要访问入口。 ## 快速启动(后端) 1. **环境准备** - JDK 1.8+ - Maven 3.6+ - MySQL 数据库(建议 5.7+ 或 8.0+) 2. **导入项目** - 将项目作为 Maven 多模块项目导入 IDE(如 IDEA)。 3. **配置数据库** - 在 `base-web` 模块中的 `application.yml` 或 `application-*.yml` 中,配置数据库连接信息(URL、用户名、密码等)。 4. **初始化数据库** - 在 MySQL 中创建项目所需数据库。 - 根据 `base-web` 中的 `mapper.xml` 或 SQL 文件初始化表结构和基础数据(如有)。 5. **启动项目** - 直接运行 `base-web` 模块中的启动类(通常位于 `com.qf` 包下的 `*Application` 或 `App` 类)。 - 启动成功后,即可通过浏览器或前端项目访问对应接口。 ## 接口文档 项目集成了 **Swagger**(`springfox-boot-starter`),启动后一般可通过如下地址访问在线接口文档(具体以实际配置为准): - `http://localhost:8080/swagger-ui/index.html` - 或 `http://localhost:8080/swagger-ui.html` 如果访问失败,请查看: - `base-web` 模块中 Swagger 配置类是否开启; - 端口号、上下文路径是否与上述示例一致。 ## 常见问题 - **Q:项目无法启动 / 启动报错?** - 检查 JDK 版本是否为 1.8,Maven 依赖是否完整下载。 - 确认数据库连接配置是否正确,数据库是否已创建。 - 查看 `base-web` 模块下的日志输出,定位具体异常信息。 - **Q:如何二次开发或新增功能?** - 按照现有的分层结构,在 `base-web` 中新增对应的 Entity、Mapper、Service、Controller。 - 推荐复用 `base-common` 中的 `ResultVo` 与 `StatesCode`,保证返回格式统一。 - 若新增公共工具或通用返回结构,可优先放入 `base-common` 模块。 ## 许可与说明 本项目主要用于 **学习与教学演示**,如需用于生产环境,请根据实际需求进行安全加固(鉴权、数据权限、日志审计等)以及性能优化。