diff --git a/README.md b/README.md index 6c07bafd..11e3ac38 100644 --- a/README.md +++ b/README.md @@ -1,125 +1,126 @@ -

- youlai-boot -

+
-

youlai-boot

+ +[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0.1-6DB33F?logo=spring-boot)](https://spring.io/projects/spring-boot) +[![JDK](https://img.shields.io/badge/JDK-17%2B-007396?logo=openjdk)](https://openjdk.org/) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue?logo=apache)](LICENSE) + +[![文档](https://img.shields.io/badge/📖%20文档-youlai.tech-blue)](https://www.youlai.tech/docs/admin/backend/java/) +[![在线预览](https://img.shields.io/badge/🖥️%20在线预览-vue.youlai.tech-10B981)](https://vue.youlai.tech) +[![Gitee Star](https://gitee.com/youlaiorg/youlai-boot/badge/star.svg)](https://gitee.com/youlaiorg/youlai-boot/stargazers) +[![GitHub Star](https://img.shields.io/github/stars/youlaitech/youlai-boot?style=social)](https://github.com/youlaitech/youlai-boot) + +
+ +## 简介 + +**youlai-boot** 是一套基于 Spring Boot 4 的企业级权限管理系统后端,配套前端 [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) 和移动端 [youlai-app](https://gitee.com/youlaiorg/youlai-app),并提供 **6 种语言实现**(Java / Node.js / Go / Python / PHP / C#),共享同一套 API 规范与数据库结构。适用于企业中后台管理系统的学习参考与二次开发。 + +## 核心特性 + +- 🔐 **安全体系** — Spring Security + JWT + Redis 多端互斥、令牌续期、验证码防刷 +- 🛡️ **细粒度权限** — RBAC 五级:数据 → 菜单 → 按钮 → 接口 → 字段 +- ⚡ **代码生成器** — 一键生成前后端 CRUD 代码 +- 📦 **模块齐全** — 用户、角色、菜单、部门、字典、文件、定时任务、消息中心、操作日志 +- 🌐 **多租户 SaaS** — 数据隔离 + 租户配置,独立 [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) 版本 +- 🔌 **实时通信** — SSE 推送:在线用户数、字典同步、通知广播 + +## 技术架构

- Spring Boot 4 企业级权限管理系统后端 + youlai-boot 技术架构图

-

- Documentation - Demo - -

- -

- - -

- ---- - -> [English](#) | 简体中文 - ---- - -## 🎯 项目定位 - -一套 **Spring Boot 4 后端权限管理系统**,配套前端 [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin),并提供 **6 种语言实现**(Java / Node.js / Go / Python / PHP / C#),共享同一套 API 规范与数据库结构。 - -**适合场景**:企业中后台管理系统的后端学习参考、二次开发基础脚手架。 - ---- - -## ✨ 核心能力 - -| 能力 | 说明 | -|------|------| -| 🔐 **安全体系** | Spring Security + JWT + Redis 多端互斥、令牌续期、验证码防刷 | -| 🛡️ **细粒度权限** | RBAC 五级:数据权限 → 菜单 → 按钮 → 接口 → 字段级 | -| ⚡ **代码生成器** | 可视化配置表单,一键生成 Entity/VO/Controller/Service/CRUD 前后端代码 | -| 📦 **模块齐全** | 用户、角色、菜单、部门、字典、文件、定时任务、消息中心、操作日志 | -| 🌐 **多租户 SaaS** | 数据隔离 + 租户配置,独立 [youlai-boot-tenant](https://gitee.com/youlaiorg/youlai-boot-tenant) 版本 | -| 🔌 **实时通信** | 内置 SSE 推送服务(在线用户数、字典同步、通知广播) | -| 📱 **生态完整** | 配套移动端 [youlai-app](https://gitee.com/youlaiorg/youlai-app)(UniApp)+ 完整[技术文档](https://www.youlai.tech/docs/admin/) | - -## 📸 系统预览 +## 系统预览 +**PC 端** - - + + + + + + + + + +
系统预览1系统预览2PC预览1PC预览2
PC预览3PC预览4
PC预览3PC预览4
+**移动端** -## 🚀 快速开始 + + + + + + + +
APP预览1APP预览2APP预览3APP预览4
-### 环境要求 +## 快速开始 -| 组件 | 版本 | -|------|------| -| JDK | 17+ | -| MySQL | 8.0+ / 5.7+ | -| Redis | 6.0+ | +**环境要求**:JDK 17+ · MySQL 8.0+ · Redis 6.0+ -### 本地启动 - -```bash -# 1. 克隆项目 -git clone https://gitee.com/youlaiorg/youlai-boot.git - -# 2. 导入数据库脚本 sql/mysql/youlai_admin.sql - -# 3. 修改 application-dev.yml 配置 MySQL 和 Redis 连接信息 -# 💡 默认已配置线上只读数据源,可直接启动体验 - -# 4. 运行 YouLaiBootApplication.java,访问 http://localhost:8000/doc.html -``` +1. 克隆项目:`git clone https://gitee.com/youlaiorg/youlai-boot.git` +2. 导入数据库:`sql/mysql/youlai_admin.sql` +3. 修改配置(可选,默认已配置线上只读数据源):`src/main/resources/application-dev.yml` +4. 启动服务,访问 http://localhost:8000/doc.html 默认账号:`admin` / `123456` -### Docker 部署 - -```bash -cd docker && docker-compose up -d -``` +**Docker 部署**:`cd docker && docker-compose up -d` 详细指南:[部署文档](https://www.youlai.tech/docs/admin/backends/java/deploy) · [开发规范](https://www.youlai.tech/docs/admin/backends/java/dev-standards) -## 📁 目录结构 +## 技术栈 + +| 技术 | 版本 | 说明 | +|:-----|:-----|:-----| +| Spring Boot | 4.0.1 | 核心框架 | +| Spring Security | 6.x | 认证授权 | +| MyBatis-Plus | 3.5.15 | ORM 框架 | +| Druid | 1.2.24 | 数据库连接池 | +| Redis + Redisson | 6.0+ / 4.1.0 | 缓存 · 会话 · 分布式锁 | +| Caffeine | 2.9.3 | 本地缓存 | +| XXL-Job | 3.2.0 | 分布式定时任务 | +| Knife4j | 4.5.0 | API 文档 | +| MapStruct | 1.6.3 | 对象映射 | +| MinIO | 8.5.10 | 对象存储 | + +## 目录结构 ``` youlai-boot/ -├── docker/ # Docker 部署编排 -├── sql/ # 数据库初始化脚本 +├── docker/ # Docker 部署编排 +├── sql/ # 数据库初始化脚本 ├── src/main/java/com/youlai/boot/ -│ ├── YouLaiBootApplication # 启动类 -│ ├── auth/ # 认证授权(登录/登出/令牌) -│ ├── codegen/ # 代码生成器 -│ ├── common/ # 公共模块(常量/枚举/统一响应) -│ ├── file/ # 文件服务(MinIO/本地存储) -│ ├── framework/ # 技术基座 -│ │ ├── apidoc/ # OpenAPI/Swagger -│ │ ├── cache/ # Redis/Caffeine 缓存 -│ │ ├── captcha/ # 图形验证码 -│ │ ├── integration/ # 短信/邮件/微信 -│ │ ├── job/ # XXL-Job 定时任务 -│ │ ├── mybatis/ # MyBatis Plus 配置 -│ │ ├── security/ # 安全过滤器/Token机制 -│ │ └── web/ # 全局异常/跨域/限流 -│ ├── message/ # SSE 消息推送 -│ └── system/ # 业务模块(用户/角色/菜单/部门) -└── pom.xml # Maven 依赖 +│ ├── YouLaiBootApplication.java # 启动类 +│ ├── auth/ # 认证授权(登录/登出/令牌) +│ ├── codegen/ # 代码生成器 +│ ├── common/ # 公共模块(常量/枚举/统一响应) +│ ├── file/ # 文件服务(MinIO/本地/OSS) +│ ├── framework/ # 技术框架层 +│ │ ├── apidoc/ # OpenAPI / Knife4j +│ │ ├── cache/ # Redis / Caffeine 缓存 +│ │ ├── captcha/ # 图形验证码 +│ │ ├── integration/ # 短信 / 邮件 / 微信 +│ │ ├── job/ # XXL-Job 定时任务 +│ │ ├── mybatis/ # MyBatis-Plus 配置 +│ │ ├── security/ # Security / JWT / Token +│ │ └── web/ # 全局异常 / 跨域 / 限流 +│ ├── message/ # SSE 消息推送 +│ └── system/ # 系统业务(用户/角色/菜单/部门) +└── pom.xml # Maven 依赖管理 ``` -## 🌐 相关生态 +## 生态矩阵 | 项目 | 技术栈 | 定位 | -|------|--------|------| +|:-----|:-------|:-----| | [**vue3-element-admin**](https://gitee.com/youlaiorg/vue3-element-admin) | Vue 3 + Element Plus | **PC 管理前端**(主推) | | [**youlai-app**](https://gitee.com/youlaiorg/youlai-app) | Vue 3 + UniApp | **移动端 App** | | [**youlai-boot-tenant**](https://gitee.com/youlaiorg/youlai-boot-tenant) | Spring Boot 4 | **SaaS 多租户版本** | @@ -132,41 +133,36 @@ youlai-boot/ > 六种后端共享同一套 **RESTful API 规范** 和 **数据库结构**,前端可无缝切换。 -## 📘 文档资源 +## 文档资源 | 资源 | 地址 | -|------|------| -| **📖 完整文档站** | [docs.youlai.tech](https://www.youlai.tech/docs/admin/) | -| **🖥️ 在线预览(前端)** | [vue.youlai.tech](https://vue.youlai.tech) | -| **📱 在线预览(移动端)** | [app.youlai.tech](https://app.youlai.tech) | -| **🔗 接口文档** | 启动后访问 [http://localhost:8000/doc.html](http://localhost:8000/doc.html) | +|:-----|:-----| +| 📖 完整文档站 | [www.youlai.tech/docs/admin](https://www.youlai.tech/docs/admin/) | +| 🖥️ PC 端在线预览 | [vue.youlai.tech](https://vue.youlai.tech) | +| 📱 移动端在线预览 | [app.youlai.tech](https://app.youlai.tech) | +| 🔗 Apifox 接口文档 | [apifox.com](https://apifox.com/apidoc/shared-xxx) | +| 🔗 本地接口文档 | [localhost:8000/doc.html](http://localhost:8000/doc.html) | -## 📊 项目统计 +## 参与贡献 -![Repobeats](https://repobeats.axiom.co/api/embed/544c5c0b5b3611a6c4d5ef0faa243a9066b89659.svg) - -## 🤝 参与贡献 - -欢迎 Issue、PR 和 Star!详见 [贡献指南](https://www.youlai.tech/docs/admin/faq/help)。 +欢迎提交 Issue 和 Pull Request!详见 [贡献指南](https://www.youlai.tech/docs/admin/faq/help)。 [![Contributors](https://contrib.rocks/image?repo=haoxianrui/youlai-boot)](https://github.com/haoxianrui/youlai-boot/graphs/contributors) -## 📄 开源协议 +## 开源协议 本项目基于 [Apache License 2.0](LICENSE) 开源,可免费用于商业项目。 --- -
- -**关注「有来技术」,获取最新动态与技术分享** - -
- - - -
- -*微信搜索「有来技术」或扫码关注* - -
+

+ 有来技术公众号 +      + 个人微信 +

+

+ 公众号「有来技术」 +              + 添加作者微信 +

+

技术交流 · 问题反馈 · 商务合作

diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/images/architecture/architecture.png b/docs/images/architecture/architecture.png new file mode 100644 index 00000000..fbd6a09f Binary files /dev/null and b/docs/images/architecture/architecture.png differ diff --git a/docs/images/preview/app-01.png b/docs/images/preview/app-01.png new file mode 100644 index 00000000..bfb8b98a Binary files /dev/null and b/docs/images/preview/app-01.png differ diff --git a/docs/images/preview/app-02.png b/docs/images/preview/app-02.png new file mode 100644 index 00000000..f781ee5e Binary files /dev/null and b/docs/images/preview/app-02.png differ diff --git a/docs/images/preview/app-03.png b/docs/images/preview/app-03.png new file mode 100644 index 00000000..ba0a9f3d Binary files /dev/null and b/docs/images/preview/app-03.png differ diff --git a/docs/images/preview/app-04.png b/docs/images/preview/app-04.png new file mode 100644 index 00000000..49dfebc1 Binary files /dev/null and b/docs/images/preview/app-04.png differ diff --git a/docs/images/preview/pc-01.png b/docs/images/preview/pc-01.png new file mode 100644 index 00000000..9a55511b Binary files /dev/null and b/docs/images/preview/pc-01.png differ diff --git a/docs/images/preview/pc-02.png b/docs/images/preview/pc-02.png new file mode 100644 index 00000000..396b6b99 Binary files /dev/null and b/docs/images/preview/pc-02.png differ diff --git a/docs/images/preview/pc-03.png b/docs/images/preview/pc-03.png new file mode 100644 index 00000000..8e36c3ec Binary files /dev/null and b/docs/images/preview/pc-03.png differ diff --git a/docs/images/preview/pc-04.png b/docs/images/preview/pc-04.png new file mode 100644 index 00000000..99e65803 Binary files /dev/null and b/docs/images/preview/pc-04.png differ diff --git a/docs/images/preview/pc-05.png b/docs/images/preview/pc-05.png new file mode 100644 index 00000000..acade2d2 Binary files /dev/null and b/docs/images/preview/pc-05.png differ diff --git a/docs/images/preview/pc-06.png b/docs/images/preview/pc-06.png new file mode 100644 index 00000000..9a479f36 Binary files /dev/null and b/docs/images/preview/pc-06.png differ diff --git a/docs/images/qr/wechat-offical.png b/docs/images/qr/wechat-offical.png new file mode 100644 index 00000000..406447c8 Binary files /dev/null and b/docs/images/qr/wechat-offical.png differ diff --git a/docs/images/qr/wechat-personal.png b/docs/images/qr/wechat-personal.png new file mode 100644 index 00000000..4539e721 Binary files /dev/null and b/docs/images/qr/wechat-personal.png differ