- module/form: 动态表单定义、数据、版本快照的增删改查与渲染校验 - module/workflow: Flowable 审批流,含流程设计、发起、审批中心与演示流程 - module/config: 工作流开关 flowable.enabled,关闭时不注册 Bean 并排除引擎自动配置 - auth: 按登录方式拆为 password/sms/qrcode/wxma/session 五个子包 - framework/security: 新增 config、handler,承载安全配置与认证授权失败处理 - application-*.yml: flowable 配置按 dev/prod/youlai 环境拆分 - sql/extensions: 新增 dynamic-form.sql、workflow.sql 增量脚本 - README: 补充目录结构、可选扩展与系统预览截图
12 KiB
项目简介
youlai-boot 是一套基于 Spring Boot 的企业级权限管理系统后端,配套前端 vue3-element-admin 和移动端 youlai-app,并提供 7 种语言实现(Java / Node.js / Go / Python / PHP / C# / Rust),共享同一套 API 规范与数据库结构。适用于企业中后台管理系统的学习参考与二次开发。
核心特性
-
🔐 安全体系 — Spring Security + JWT/Redis Token 双会话模式、令牌续期、多端互斥
-
🛡️ 细粒度权限 — RBAC 五级:数据 → 菜单 → 按钮 → 接口 → 字段
-
⚡ 代码生成器 — 一键生成前后端 CRUD 代码
-
📦 模块齐全 — 用户、角色、菜单、部门、字典、文件(OSS/RustFS/本地)、定时任务、消息中心、操作日志
-
🔀 工作流 — Flowable 审批流:BPMN 在线设计、条件网关、角色审批、驳回回退
-
🌐 多租户 SaaS — 数据隔离 + 租户配置,独立 youlai-boot-tenant 版本
-
🔌 实时通信 — SSE 推送:在线用户数、字典同步、通知广播
系统预览
PC 端
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
移动端
![]() |
![]() |
![]() |
![]() |
快速开始
环境要求:JDK 17+ · MySQL 8.0+ · Redis 6.0+
-
克隆项目:
git clone https://gitee.com/youlaiorg/youlai-boot.git -
导入数据库:
# 基础库(必装) sql/youlai-admin.sql # 可选扩展:不装不影响基础功能,需在基础库之后执行 sql/extensions/dynamic-form.sql # 动态表单 sql/extensions/workflow.sql # 工作流(Flowable 演示流程与演示账号,非引擎表) -
修改配置(可选,默认已配置线上只读数据源):
src/main/resources/application-dev.yml -
启动服务:
方式一:IDEA 启动(推荐) 用 IDEA 打开项目,等待 Maven 依赖下载完成,运行启动类
YouLaiBootApplication即可。方式二:命令行启动
mvn spring-boot:run启动后访问 http://localhost:8000/doc.html,能打开接口文档即说明后端已正常运行。
-
启动前端(可选): 如需可视化操作界面,启动配套前端 vue3-element-admin,访问 http://localhost:3000,使用
admin/123456登录。
目录结构
youlai-boot/
├── docs/ # 项目文档与图片资源
├── sql/ # 数据库初始化脚本
├── src/ # 源码目录
│ ├── auth/ # 认证模块
│ │ ├── password/ # 账号密码登录(含图形验证码)
│ │ ├── sms/ # 短信验证码登录
│ │ ├── qrcode/ # 扫码登录
│ │ ├── wxma/ # 微信小程序登录
│ │ └── session/ # 登录态管理(登出 / 刷新令牌)
│ ├── codegen/ # 代码生成器
│ ├── common/ # 公共模块(常量/枚举/异常/统一响应/工具类)
│ ├── config/ # 配置类(Security/Redis/MyBatis/接口文档/跨域/定时任务等)
│ ├── framework/ # 基础设施层
│ │ ├── mybatis/ # MyBatis-Plus 配置
│ │ ├── security/ # Spring Security
│ │ │ ├── config/ # 安全配置与配置属性
│ │ │ ├── filter/ # Token 认证过滤器
│ │ │ ├── handler/ # 认证 / 授权失败处理器
│ │ │ ├── model/ # 安全模型(SecurityUser / 令牌 / 数据范围)
│ │ │ ├── port/ # 认证与权限端口(由 system 提供实现)
│ │ │ ├── service/ # 用户详情与权限服务
│ │ │ ├── token/ # Token 管理(JWT / Redis 双模式)
│ │ │ └── util/ # 安全工具类
│ │ └── web/ # Web 层(全局异常/跨域/限流)
│ ├── module/ # 业务扩展模块
│ │ ├── config/ # 模块装配(工作流按 flowable.enabled 开关)
│ │ ├── form/ # 动态表单
│ │ └── workflow/ # 工作流(Flowable 审批流)
│ ├── support/ # 能力服务
│ │ ├── file/ # 文件存储(RustFS/阿里云OSS/本地)
│ │ ├── mail/ # 邮件服务
│ │ ├── sms/ # 短信服务
│ │ └── sse/ # SSE 消息推送
│ └── system/ # 系统业务(用户/角色/菜单/部门/字典等)
├── docker-compose.yml # 中间件一键编排(MySQL/Redis/RustFS/Xxl-Job)
└── pom.xml # Maven 依赖管理
生态矩阵
前端
| 项目 | 技术栈 | 说明 | 更新状态 |
|---|---|---|---|
| vue3-element-admin | Vue 3 + Element Plus | PC 管理前端(主推) | ✅️ |
| youlai-app | Vue 3 + UniApp | 移动端 App | ✅️ |
后端
| 项目 | 技术栈 | 说明 | 更新状态 |
|---|---|---|---|
| youlai-boot | Spring Boot + MyBatis-Plus | Java(主推) | ✅️ |
| youlai-nest | NestJS + TypeORM | Node.js | ✅️ |
| youlai-gin | Go + Gorm | Go | ✅️ |
| youlai-django | Django + DRF | Python | ✅️ |
| youlai-fastapi | FastAPI + SQLAlchemy | Python | ✅️ |
| youlai-laravel | Laravel + Eloquent | PHP | ✅️ |
| youlai-think | ThinkPHP + ThinkORM | PHP | ✅️ |
| youlai-aspnet | ASP.NET Core + EF Core | C# | ✅️ |
| youlai-axum | Axum + SeaORM | Rust | ✅️ |
九种后端共享同一套 RESTful API 规范 和 数据库结构,前端可无缝切换。
衍生版本
| 项目 | 基于 | 类型 | 说明 | 更新状态 |
|---|---|---|---|---|
| youlai-boot-tenant | youlai-boot | 独立仓库 | 多租户 SaaS,租户隔离与租户配置 | ✅️ |
| youlai-boot-flex | youlai-boot | 独立仓库 | 改用 MyBatis-Flex | ✅️ |
| youlai-boot (db-pg) | youlai-boot | 分支 | PostgreSQL 数据库分支 | ✅️ |
| youlai-boot (multi-module) | youlai-boot | 分支 | 多模块工程拆分 | ✅️ |
| youlai-boot (spring-boot-3) | youlai-boot | 分支 | Spring Boot 3 兼容分支 | ✅️ |
| youlai-nest (multi-tenant) | youlai-nest | 分支 | 多租户 SaaS,租户隔离与租户配置 | ✅️ |
可选扩展
工作流(默认关闭)
两步开启:
-
导入演示数据(演示流程与演示账号):
sql/extensions/workflow.sqlACT_* 引擎表无需导入,启动时由 Flowable 自动创建(已存在则不重复处理)。
-
在
application-{profile}.yml中开启:flowable: enabled: true
多租户
需要租户隔离与租户配置,使用独立仓库 youlai-boot-tenant。
技术合作
本项目采用 Apache License 2.0 开源,可免费商用。欢迎在 Issue 提交问题或反馈,也欢迎提交 Pull Request 共建。
如需技术支持、商务合作、二次开发、项目定制或私有化部署,可联系作者微信(见下方二维码)。
| 公众号「有来技术」 | 小程序「有来技术」 | 添加作者微信 | ||
|---|---|---|---|---|
技术交流 · 问题反馈 · 商务合作










