# 予书管理系统 - 后端 基于 Spring Boot 的企业级管理系统后端 --- ## 简介 予书管理系统后端是一个基于 Spring Boot 3.x 的企业级应用系统,提供完整的用户权限管理、系统监控等功能。 --- ## 核心特性 - 完整的权限管理:RBAC权限模型,支持角色、菜单、按钮级权限控制 - 系统监控:在线用户、定时任务、数据监控、服务监控、缓存监控 - 开发工具:代码生成器、表单构建器、接口文档 - 操作日志:详细的操作日志和登录日志记录 - 定时任务:基于 Quartz 的分布式定时任务调度 --- ## 技术栈 ### 核心框架 | 技术 | 说明 | 版本 | |------|------|------| | Spring Boot | 基础框架 | 3.5.4 | | Spring Security | 安全框架 | - | | MyBatis | ORM框架 | - | | Druid | 数据库连接池 | - | ### 数据存储 | 技术 | 说明 | 版本 | |------|------|------| | MySQL | 主数据库 | 5.7+ | | Redis | 缓存数据库 | 3.0+ | ### 工具库 | 技术 | 说明 | |------|------| | JWT | Token生成与验证 | | FastJson | JSON处理 | | POI | Excel导入导出 | | Velocity | 代码生成模板引擎 | | Quartz | 定时任务调度 | --- ## 项目结构 ``` yushu-backend/ ├── sql/ # 数据库脚本 │ ├── ys_20250522.sql # 系统核心数据库(必须) │ ├── quartz.sql # 定时任务模块(必须) │ ├── ai.sql # AI模块(可选) │ ├── mail.sql # 邮箱模块(可选) │ ├── file.sql # 文件模块(可选) │ ├── message.sql # 消息模块(可选) │ └── error-log.sql # 错误日志模块(可选) ├── yushu-admin/ # 主应用模块 │ └── src/main/java/com/yushu/ │ ├── YuShuApplication.java # 启动类 │ └── web/controller/ # 控制器层 ├── yushu-common/ # 通用模块 │ └── src/main/java/com/yushu/common/ │ ├── annotation/ # 自定义注解 │ ├── constant/ # 常量定义 │ ├── core/ # 核心组件 │ ├── enums/ # 枚举类 │ ├── exception/ # 异常处理 │ └── utils/ # 工具类 ├── yushu-framework/ # 框架核心 │ └── src/main/java/com/yushu/framework/ │ ├── aspectj/ # AOP切面 │ ├── config/ # 配置类 │ ├── datasource/ # 数据源配置 │ ├── interceptor/ # 拦截器 │ ├── security/ # 安全配置 │ └── web/ # Web配置 ├── yushu-generator/ # 代码生成器 ├── yushu-quartz/ # 定时任务模块 └── yushu-system/ # 系统模块 └── src/main/java/com/yushu/system/ ├── domain/ # 实体类 ├── mapper/ # Mapper接口 ├── service/ # 服务层 └── controller/ # 控制器(由admin模块调用) ``` --- ## 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 5.7+ - Redis 3.0+ --- ## 安装部署 ### 1. 克隆项目 ```bash git clone https://github.com/your-username/yushu-backend.git cd yushu-backend ``` ### 2. 创建数据库 ```sql CREATE DATABASE yushu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` ### 3. 执行SQL脚本 **必须导入**: ```bash # 系统核心数据库 mysql -u root -p yushu < sql/ys_20250522.sql # 定时任务模块 mysql -u root -p yushu < sql/quartz.sql ``` **可选模块**: ```bash # AI模块 - 集成AI聊天功能 mysql -u root -p yushu < sql/ai.sql # 邮箱模块 - 系统邮件发送 mysql -u root -p yushu < sql/mail.sql # 文件模块 - 文件管理功能 mysql -u root -p yushu < sql/file.sql # 消息模块 - 站内消息功能 mysql -u root -p yushu < sql/message.sql # 错误日志模块 - 前端错误日志收集 mysql -u root -p yushu < sql/error-log.sql ``` ### 4. 修改配置 编辑 `yushu-admin/src/main/resources/application-druid.yml`: ```yaml spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/yushu?useUnicode=true&characterEncoding=utf8&... username: root password: your_password ``` 编辑 `yushu-admin/src/main/resources/application.yml` 配置Redis: ```yaml redis: host: localhost port: 6379 password: ``` ### 5. 编译打包 ```bash mvn clean package ``` ### 6. 运行项目 ```bash cd yushu-admin/target java -jar yushu-admin.jar ``` 或者在IDE中直接运行 `YuShuApplication.java` ### 7. 访问系统 - 后端接口:http://localhost:8080 - 接口文档:http://localhost:8080/swagger-ui.html ### 默认账号 - 用户名:`admin` - 密码:`admin123` --- ## 系统监控 ### 在线用户监控 - 实时查看在线用户列表 - 支持强制踢出用户 - 查看用户登录信息 ### 定时任务管理 - 可视化任务配置 - 支持Cron表达式 - 任务执行日志 ### 数据监控 - Druid数据源监控 - SQL性能分析 - 数据库连接池状态 ### 服务监控 - CPU使用率 - 内存使用情况 - JVM信息 - 磁盘状态 ### 缓存监控 - Redis连接信息 - 缓存命中率 - 键值管理 --- ## 开发工具 ### 代码生成器 1. 配置数据源 2. 选择要生成的表 3. 自动生成: - Entity实体类 - Mapper接口和XML - Service层 - Controller层 - 前端页面 ### 表单构建器 - 可视化表单设计 - 拖拽式组件配置 - 生成Vue表单代码 --- ## 接口文档 访问 `http://localhost:8080/swagger-ui.html` 查看完整的API文档。 ### 主要接口模块 - `/system/user` - 用户管理 - `/system/role` - 角色管理 - `/system/menu` - 菜单管理 - `/system/dept` - 部门管理 - `/system/ai/**` - AI聊天相关 - `/monitor/**` - 系统监控相关 --- ## 配置说明 ### 核心配置文件 - `application.yml` - 主配置文件 - `application-druid.yml` - 数据源配置 - `logback.xml` - 日志配置 ### 重要配置项 #### JWT配置 ```yaml token: header: Authorization secret: your-secret-key expireTime: 30 # 分钟 ``` #### 文件上传 ```yaml yushu: profile: D:/yushu/uploadPath # 上传路径 upload: maxSize: 50 # MB ``` #### AI配置 在数据库 `ai_model_config` 表中配置各AI厂商的API密钥。 --- ## 安全说明 ### 已实现的安全措施 - JWT Token认证 - 密码加密存储(BCrypt) - SQL注入防护 - XSS攻击防护 - CSRF防护 - 接口防重放 - 敏感操作日志记录 ### 建议 - 生产环境务必修改默认密码 - 定期更换JWT密钥 - 配置HTTPS - 限制IP访问(如有需要) --- ## 生产部署 ### Jar包部署 ```bash # 打包 mvn clean package -Dmaven.test.skip=true # 运行 nohup java -jar yushu-admin.jar > yushu.log 2>&1 & ``` ### Docker部署 ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp COPY yushu-admin.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` ```bash docker build -t yushu-backend . docker run -d -p 8080:8080 --name yushu yushu-backend ``` --- ## 贡献指南 欢迎提交Issue和Pull Request! ### 开发规范 - 代码风格遵循阿里巴巴Java开发手册 - 提交信息格式:`[模块] 功能描述` - 新功能需要添加单元测试 --- ## License 本项目采用 MIT 许可证。 --- ## 联系方式 - 项目主页:https://github.com/your-username/yushu-backend - 问题反馈:https://github.com/your-username/yushu-backend/issues - 邮箱:your-email@example.com --- ## 致谢 感谢以下开源项目: - [RuoYi](https://gitee.com/y_project/RuoYi) - 基础框架 - [Spring Boot](https://spring.io/projects/spring-boot) - [MyBatis](https://mybatis.org/mybatis-3/) - 以及所有贡献者