xuemz
← 返回项目列表 xuemz-springboot-admin V2.0.0 封面
2026 Java Spring Boot Spring Security MyBatis-Plus Redis JWT

xuemz-springboot-admin V2.0.0

基于 Spring Boot 的后台管理系统后端,提供 RBAC 权限、JWT 认证、Redis 会话缓存与代码生成器,可配合 Vue / React 管理端使用

项目简介

xuemz-springboot-admin V2.0.0 是一套基于 Spring Boot 的后台管理系统后端服务,提供用户、角色、菜单的 RBAC 权限管理能力。内置 JWT 认证、Redis 会话缓存与 Freemarker 代码生成器,可作为 Vue Admin、React Admin 等前端管理框架的后端 API 层。

  • 作者:xue_mz
  • 默认端口:26429
  • 运行环境:JDK 1.8+、Maven 3.6+、MySQL 5.7+ / 8.0+、Redis 5.0+

功能特性

  • RBAC 权限模型:用户、角色、菜单三级关联,支持按角色分配菜单权限
  • JWT 无状态认证:Spring Security + JWT,Token 缓存于 Redis,支持单点 / 多点登录控制
  • 菜单树管理:菜单字段适配前端路由(path、component、icon、keepAlive 等)
  • 统一响应封装ReturnData 统一 API 返回格式,全局异常处理
  • 数据库版本管理:Flyway 自动迁移 Schema
  • 代码生成器:基于 Freemarker 模板,一键生成 Entity / Controller / Service / Mapper / PageDto
  • 日志与脱敏:AOP 请求日志记录,敏感字段自动脱敏

技术栈

类别技术
语言 / 框架Java 8、Spring Boot 2.7.18
安全Spring Security、JWT(jjwt 0.11.5)、BCrypt
持久层MyBatis-Plus 3.5.7、MySQL
缓存Spring Data Redis
数据库迁移Flyway
工具库Lombok、Hutool
模板引擎Freemarker、Velocity(代码生成)

项目结构

src/main/java/cn/xuemz/
├── XueMZSpringBootAdminJavaApplication.java   # 启动类
├── config/          # Security、Redis、MyBatis-Plus、Jackson 等
├── controller/      # 接口层
├── service/         # 业务层
├── mapper/          # 数据访问层
├── pojo/            # entity / dto / vo
├── security/        # JWT 过滤器、认证工具类
├── cache/redis/     # Redis 缓存封装
├── generator/       # 代码生成器
├── aop/             # 日志切面
├── exception/       # 业务异常
├── result/          # 统一响应
└── utils/           # 工具类

src/main/resources/
├── application.yml              # 主配置
├── application-dev.yml          # 开发环境
├── application-prod.yml         # 生产环境
├── db/migration/                # Flyway 迁移脚本
└── freemarker/                  # 代码生成模板

核心数据表

表名说明
sys_user系统用户
sys_role系统角色
sys_menu系统菜单
sys_user_role用户-角色关联
sys_role_menu角色-菜单关联

Flyway 首次启动自动执行迁移脚本,初始化表结构与超级管理员账号(admin / 123456)。

快速开始

# 1. 克隆项目
git clone https://gitee.com/xue-mz/xuemz-springboot-admin-v2
cd xuemz-springboot-admin-v2

# 2. 创建数据库
CREATE DATABASE xuemz_springboot_admin_v2
  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 3. 配置数据库与 Redis(环境变量或 application-local.yml)

# 4. 启动
mvn spring-boot:run

登录接口:POST /sysUser/sysUserLogin

{
  "account": "admin",
  "password": "123456"
}

主要 API 模块

除登录外,所有请求需在 Header 中携带 token: <jwt-token>。统一响应格式:

{
  "code": "200",
  "msg": "成功",
  "data": {}
}
模块路径前缀说明
用户/sysUser登录、登出、用户 CRUD、密码修改、分页查询
角色/sysRole角色及菜单权限分配、角色列表
菜单/sysMenu菜单 CRUD、完整菜单树、按 Token 获取用户菜单

代码生成器

内置基于数据库表结构的代码生成器,可生成 Entity、Controller、Service、Mapper、PageDto 等文件:

  1. CodeGenerateFactory.main() 中配置表名、表描述和作者
  2. 运行 cn.xuemz.generator.CodeGenerateFactory
  3. 生成文件输出至 src/main/java/cn/xuemz/ 对应包路径

开发与部署要点

  • 密码使用 BCrypt 加密,Token 默认有效期 14 天并存于 Redis
  • 超级管理员角色标识:superAdmin,管理员标识:admin
  • 生产环境(application-prod.yml)要求数据库、Redis 密码及 JWT 密钥通过环境变量注入
  • 生产部署后请尽快修改默认密码与 JWT 密钥