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 等文件:
- 在
CodeGenerateFactory.main()中配置表名、表描述和作者 - 运行
cn.xuemz.generator.CodeGenerateFactory - 生成文件输出至
src/main/java/cn/xuemz/对应包路径
开发与部署要点
- 密码使用 BCrypt 加密,Token 默认有效期 14 天并存于 Redis
- 超级管理员角色标识:
superAdmin,管理员标识:admin - 生产环境(
application-prod.yml)要求数据库、Redis 密码及 JWT 密钥通过环境变量注入 - 生产部署后请尽快修改默认密码与 JWT 密钥