资讯动态

backend 项目目录介绍(管理系统后端)

发布时间:2026/10/4 7:06:57 来源:尧图企业网站定制
# backend 项目目录介绍管理系统后端 路径 F:\workplase\backend 技术栈Spring Boot 3.5.4 MyBatis 3.0.4 MySQL 8.4 JWT 端口8080 启动类 ManagementApplication## 一、整体架构经典三层架构 分层包设计请求流转**Controller控制层→ Service业务层→ Mapper数据访问层→ MySQL**前端(Vue3) ──HTTP/JSON──▶ Controller ──▶ Service ──▶ Mapper(MyBatis注解SQL) ──▶ MySQL│ ▲│ └─ JwtInterceptor(登录校验拦截)▼Result 统一响应包装* 全部接口返回统一结构 Resultcode / message / data* 除登录 / 注册外所有接口都经过 JWT 拦截器校验Authorization: Bearer token* 密码使用 SHA-256 哈希存储不存明文## 二、目录结构总览backend/├── pom.xml # Maven 构建配置(依赖、插件)├── settings-mirror.xml # 阿里云镜像仓库配置(加速下载)└── src/└── main/├── java/com/mgmt/system/│ ├── ManagementApplication.java # 启动类(入口)│ ├── common/ # 公共组件: 统一响应/异常/分页│ ├── config/ # 配置: JWT拦截器、Web配置│ ├── controller/ # 控制层(5个): 接收请求、返回响应│ ├── dto/ # 数据传输对象(请求/响应模型)│ ├── entity/ # 实体类(对应6张数据库表)│ ├── mapper/ # 数据访问层(MyBatis注解SQL)│ ├── service/ # 业务逻辑层(5个业务服务)│ └── util/ # 工具类: JWT生成校验、密码加密└── resources/└── application.yml # 应用配置(端口/数据库/JWT) target/ 编译产物和 .idea/ IDEA 配置为自动生成目录不属于源码。## 三、各层详解### 1. 启动类 ManagementApplication.javaSpringBootApplicationMapperScan(com.mgmt.system.mapper) // 扫描所有 Mapper 接口public class ManagementApplication { public static void main(String[] args) { ... } }IDEA 中右键 → Run 即启动后端成功后控制台显示 Started ... port 8080。### 2. common — 公共组件4 个类| 类 | 作用 || ------------------------ | ----------------------------------------- || Result | 统一响应体{code, message, data}成功 code200 || PageResult | 分页结果封装{total, list} || BizException | 业务异常手动抛出如 用户名或密码错误 || GlobalExceptionHandler | 全局异常处理器统一捕获异常并转为 Result 返回避免报错信息裸奔 |### 3. config — 配置层2 个类| 类 | 作用 || ---------------- | ----------------------------------- || JwtInterceptor | JWT 登录拦截器校验请求头 token非法 / 过期返回 401 || WebConfig | 注册拦截器 跨域配置CORS允许前端 5173 访问 |### 4. controller — 控制层5 个接口入口| 类 | 路径前缀 | 功能 || --------------------- | ---------------- | ------------------------------- || AuthController | /api/auth | 登录、获取当前用户信息、退出 || UserController | /api/users | 用户增删改查、分页、重置密码、分配角色 || RoleController | /api/roles | 角色增删改查 || MenuController | /api/menus | 菜单树查询 || DashboardController | /api/dashboard | 首页统计用户 / 角色 / 菜单数、用户状态分布、操作日志 |### 5. dto — 数据传输对象4 个类| 类 | 用途 || --------------- | -------------------------- || LoginRequest | 登录请求参数username/password || LoginResponse | 登录响应token 用户信息 菜单树 || UserDTO | 用户新增 / 修改的入参含密码、角色 ID 列表 || MenuTreeVO | 菜单树视图对象含 children 递归结构 |### 6. entity — 实体类6 个与数据库表一一对应| 实体 | 对应表 | 说明 || ----------------- | ------------------- | ----------------------------------------------- || SysUser | sys\_user | 用户username、password、real\_name、status 等 || SysRole | sys\_role | 角色role\_name、role\_code || SysMenu | sys\_menu | 菜单menu\_name、path、icon、parent\_id、sort\_order || SysUserRole | sys\_user\_role | 用户 - 角色关联 || SysRoleMenu | sys\_role\_menu | 角色 - 菜单关联 || SysOperationLog | sys\_operation\_log | 操作日志预留 |### 7. mapper — 数据访问层6 个接口MyBatis 注解 SQL| 接口 | 说明 || ----------------------- | ------------------------------- || SysUserMapper | 用户增删改查、按关键词分页、按状态统计、查角色 ID、更新密码 || SysRoleMapper | 角色 CRUD、查询角色列表 || SysMenuMapper | 菜单 CRUD、按角色查询菜单、查询全部菜单 || SysUserRoleMapper | 用户角色关系维护 || SysRoleMenuMapper | 角色菜单关系维护 || SysOperationLogMapper | 操作日志记录查询 | 使用注解式 SQL Select / Insert 等无需 XML 文件 map-underscore-to-camel-case 自动将 real_name 映射为 realName 。### 8. service — 业务逻辑层5 个服务| 服务 | 核心业务 || ------------------ | ------------------------ || AuthService | 登录校验、签发 JWT、获取用户信息 菜单树 || UserService | 用户 CRUD、分页搜索、重置密码、角色分配 || RoleService | 角色 CRUD、角色分配菜单 || MenuService | 菜单树组装父子递归 || DashboardService | 首页统计汇总数量统计 用户状态分布 |### 9. util — 工具类2 个| 类 | 作用 || -------------- | ------------------------------------------- || JwtUtil | 生成 / 解析 JWT密钥来自 application.yml有效期 24 小时 || PasswordUtil | SHA-256 加密密码、校验密码 |### 10. resources/application.yml — 核心配置server:port: 8080 # 后端端口spring:datasource: # 数据库连接(127.0.0.1:3306/mgmt_system, root/root)jackson:date-format: yyyy-MM-dd HH:mm:ss # 时间序列化格式jwt:secret: mgmt-system-... # JWT 密钥(演示用, 生产需更换)expire-hours: 24 # token 有效期 24 小时## 四、pom.xml 依赖清单| 依赖 | 版本 | 用途 || ------------------------------ | --------- | ----------------- || spring-boot-starter-web | 3.5.4 | Web 框架内嵌 Tomcat || spring-boot-starter-validation | 3.5.4 | 参数校验注解Valid || mybatis-spring-boot-starter | 3.0.4 | MyBatis 持久层 || mysql-connector-j | 随 Boot 管理 | MySQL 驱动 || jjwt (api/impl/jackson) | 0.12.6 | JWT 生成与校验 || lombok | 1.18.48 | 简化实体类代码Data 等 |**特别说明JDK 25 兼容**pom 中已配置 lombok.version1.18.48 maven-compiler-plugin procfull/proc—— 因为 JDK 24 默认关闭注解处理不配置会导致 Lombok 生成的方法缺失、编译报 找不到符号。这是本项目踩过并修复的坑。## 五、一次登录请求的完整流转示例1. POST /api/auth/login {username, password}2. AuthController 接收 → 调 AuthService3. AuthService: PasswordUtil 校验密码 → JwtUtil 签发 token → 查角色菜单树4. 返回 LoginResponse {token, user, menus}5. 前端保存 token, 后续请求带 Authorization: Bearer token6. 其他请求 → JwtInterceptor 校验 token → 通过 → 进入 Controller → Service → Mapper## 六、启动与常用命令# IDEA 运行: 右键 ManagementApplication → Run# 或命令行:mvn -s settings-mirror.xml clean package -DskipTests # 打包java -jar target/system-backend-1.0.0.jar # 启动(8080)接口完整说明见 docs/API文档.md。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑