README.md 7.9 KB

# 予书管理系统 - 后端

基于 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. 克隆项目

git clone https://github.com/your-username/yushu-backend.git
cd yushu-backend

2. 创建数据库

CREATE DATABASE yushu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3. 执行SQL脚本

必须导入

# 系统核心数据库
mysql -u root -p yushu < sql/ys_20250522.sql

# 定时任务模块
mysql -u root -p yushu < sql/quartz.sql

可选模块

# 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

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:

redis:
    host: localhost
    port: 6379
    password: 

5. 编译打包

mvn clean package

6. 运行项目

cd yushu-admin/target
java -jar yushu-admin.jar

或者在IDE中直接运行 YuShuApplication.java

7. 访问系统

默认账号

  • 用户名: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配置

token:
    header: Authorization
    secret: your-secret-key
    expireTime: 30  # 分钟

文件上传

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包部署

# 打包
mvn clean package -Dmaven.test.skip=true

# 运行
nohup java -jar yushu-admin.jar > yushu.log 2>&1 &

Docker部署

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY yushu-admin.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
docker build -t yushu-backend .
docker run -d -p 8080:8080 --name yushu yushu-backend

贡献指南

欢迎提交Issue和Pull Request!

开发规范

  • 代码风格遵循阿里巴巴Java开发手册
  • 提交信息格式:[模块] 功能描述
  • 新功能需要添加单元测试

License

本项目采用 MIT 许可证。


联系方式


致谢

感谢以下开源项目: