# Hertz 权限管理系统项目说明文档 ## 1. 项目简介 Hertz 权限管理系统是一个基于前后端分离架构的轻量级权限管理平台。系统集成了用户管理、角色管理、菜单管理等核心功能,采用 RBAC(Role-Based Access Control)模型实现细粒度的权限控制。 ### 1.1 项目结构 项目采用典型的多模块(或目录分离)结构: - **hertz_springboot**: 后端工程,基于 Spring Boot 3 + MyBatis-Plus。 - **hertz_springboot_ui**: 前端工程,基于 Vue 3 + Vite + Element Plus。 ## 2. 技术栈 ### 2.1 后端技术栈 (hertz_springboot) - **核心框架**: Spring Boot 3.4.1 - **持久层框架**: MyBatis-Plus 3.5.8 - **安全框架**: Spring Security + JJWT 0.12.6 (实现无状态 JWT 认证) - **数据库连接池**: HikariCP (Spring Boot 默认) - **数据库驱动**: MySQL Connector/J - **工具库**: Lombok - **运行环境**: Java 21 ### 2.2 前端技术栈 (hertz_springboot_ui) - **核心框架**: Vue 3.5.24 - **构建工具**: Vite 7.2.4 - **UI 组件库**: Element Plus 2.13.1 - **状态管理**: Pinia 3.0.4 - **路由管理**: Vue Router 4.6.4 - **HTTP 客户端**: Axios 1.13.2 ## 3. 功能模块 1. **认证模块**: 支持用户登录、注册(可选)、JWT Token 颁发与验证。 2. **系统管理**: - **用户管理**: 用户的增删改查、分配角色、状态控制。 - **角色管理**: 角色的增删改查、分配菜单权限。 - **菜单管理**: 动态菜单配置,支持目录、菜单、按钮三种类型,支持权限标识配置。 3. **个人中心**: 用户资料修改、密码修改、头像上传。 4. **监控模块**: - **系统监控**: 实时展示 CPU、内存、JVM、服务器信息、磁盘状态。 - **监控日志**: 记录系统运行时的性能指标。 5. **AI 助手模块**: - **智能对话**: 集成 Spring AI (Ollama),支持与 AI 助手进行智能对话。 - **会话管理**: 支持历史会话的持久化存储与查询。 ## 4. 快速开始 ### 4.1 环境准备 - JDK 21+ - Node.js 18+ - MySQL 8.0+ ### 4.2 后端启动 1. 进入后端目录: ```bash cd hertz_springboot ``` 2. 配置数据库: - 创建数据库 `hertz_springboot`。 - 导入 `src/main/resources/schema.sql` 初始化表结构和数据。 - 修改 `src/main/resources/application.yml` 中的数据库连接信息(url, username, password)。 3. 运行项目: ```bash mvn spring-boot:run ``` 或者在 IDE 中运行 `HertzApplication.java`。 后端服务将启动在 `http://localhost:8080`。 ### 4.3 前端启动 1. 进入前端目录: ```bash cd hertz_springboot_ui ``` 2. 安装依赖: ```bash npm install ``` 3. 启动开发服务器: ```bash npm run dev ``` 前端服务通常启动在 `http://localhost:5173`。 ## 5. 默认账号 初始化 SQL 脚本中包含以下默认账号(密码均为 `123456`): - **管理员**: `hertz` - **普通用户**: `demo` ## 6. 配置说明 ### 6.1 后端配置 (application.yml) - **Server Port**: 8080 - **File Upload**: - 最大文件大小: 2MB - 最大请求大小: 10MB - 上传根路径: `d:\LocalFile\hertz_springboot\uploads` (请根据实际环境修改) - **JWT**: - 密钥: `app.jwt.secret` (建议在生产环境中修改为强随机字符串) - 过期时间: 86400秒 (24小时) ## 7. 注意事项 - **文件上传**: 默认配置了本地文件存储路径,请确保该路径存在或有写入权限,或者在 `application.yml` 中修改为合适的路径。 - **跨域**: 前端开发环境通常通过 Vite 代理解决跨域问题,生产环境需配置 Nginx 或后端 CORS。