Files
youlai-boot/README.md
2026-05-24 20:25:43 +08:00

155 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
<img alt="youlai-boot" width="80" src="./docs/images/logo/logo.png">
# youlai-boot-multi
**Spring Boot 4 多模块企业级权限管理系统后端**
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0.5-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/server/spring-boot/)
[![在线预览](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)
</div>
## 简介
**youlai-boot-multi** 是 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) 的多模块版本,基于 Spring Boot 4将原单体项目拆分为独立模块实现业务解耦与按需引用。配套前端 [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin),共享同一套 API 规范与数据库结构。
> 📌 本项目为 [youlai-boot](https://gitee.com/youlaiorg/youlai-boot) 的 `multi-module` 分支,克隆时请切换分支。
## 核心特性
- 🔐 **安全体系** — Spring Security + JWT/Redis Token 双会话模式、令牌续期、多端互斥
- 🛡️ **细粒度权限** — RBAC 五级:数据 → 菜单 → 按钮 → 接口 → 字段
-**代码生成器** — 一键生成前后端 CRUD 代码
- 📦 **模块齐全** — 用户、角色、菜单、部门、字典、文件、定时任务、消息中心、操作日志
- 🔌 **实时通信** — SSE 推送:在线用户数、字典同步、通知广播
- 🧩 **模块解耦** — 事件驱动通信,模块间零循环依赖
## 快速开始
**环境要求**JDK 17+ · MySQL 8.0+ · Redis 6.0+
1. 克隆项目:`git clone -b multi-module https://gitee.com/youlaiorg/youlai-boot.git`
2. 导入数据库:`sql/youlai_admin.sql`
3. 修改配置(可选,默认已配置线上只读数据源):`youlai-application/src/main/resources/application-dev.yml`
4. 启动服务(运行 `youlai-application` 模块的 `YouLaiBootApplication`),访问 http://localhost:8000/doc.html
默认账号:`admin` / `123456`
**Docker 部署**`cd docker && docker-compose up -d`
详细指南:[部署文档](https://www.youlai.tech/docs/server/spring-boot/deploy) · [开发规范](https://www.youlai.tech/docs/server/spring-boot/dev-standards)
## 技术栈
| 技术 | 版本 | 说明 |
|:-----|:-----|:-----|
| Spring Boot | 4.0.5 | 核心框架 |
| 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-multi/
├── youlai-application/ # 启动模块(入口)
├── youlai-common/ # 公共模块(常量/枚举/事件/统一响应)
├── youlai-framework/ # 技术框架层
│ ├── apidoc/ # OpenAPI / Knife4j
│ ├── cache/ # Redis / Caffeine 缓存
│ ├── captcha/ # 图形验证码
│ ├── integration/ # 短信 / 邮件 / 微信
│ ├── job/ # XXL-Job 定时任务
│ ├── mybatis/ # MyBatis-Plus 配置
│ ├── security/ # Security / JWT / Token
│ └── web/ # 全局异常 / 跨域 / 限流
├── youlai-system/ # 系统业务(用户/角色/菜单/部门)
├── youlai-auth/ # 认证授权(登录/登出/令牌)
├── youlai-file/ # 文件服务MinIO/本地/OSS
├── youlai-message/ # SSE 消息推送
├── youlai-codegen/ # 代码生成器
├── docker/ # Docker 部署编排
├── sql/ # 数据库初始化脚本
└── pom.xml # Maven 依赖管理
```
## 模块依赖关系
```
youlai-application ──→ youlai-system ──→ youlai-framework ──→ youlai-common
──→ youlai-auth ──→ youlai-framework
──→ youlai-file ──→ youlai-framework
──→ youlai-message──→ youlai-framework
──→ youlai-codegen──→ youlai-framework
```
## 生态矩阵
**前端**
| 项目 | 技术栈 | 说明 |
|:-----|:-------|:-----|
| [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-nest](https://gitee.com/youlaiorg/youlai-nest) | NestJS + TypeORM | Node.js |
| [youlai-gin](https://gitee.com/youlaiorg/youlai-gin) | Go + Gorm | Go |
| [youlai-django](https://gitee.com/youlaiorg/youlai-django) | Django + DRF | Python |
| [youlai-thinkphp](https://gitee.com/youlaiorg/youlai-thinkphp) | ThinkPHP 8 | PHP |
| [youlai-aspnet](https://gitee.com/youlaiorg/youlai-aspnet) | ASP.NET Core | C# |
> **youlai-boot** 还提供以下变种和分支版本:[多租户](https://gitee.com/youlaiorg/youlai-boot-tenant)Spring Boot 4· [MyBatis-Flex](https://gitee.com/youlaiorg/youlai-boot-flex)Spring Boot 4· [Spring Boot 3](https://gitee.com/youlaiorg/youlai-boot/tree/spring-boot-3) · [PostgreSQL](https://gitee.com/youlaiorg/youlai-boot/tree/db-pg) · [多模块](https://gitee.com/youlaiorg/youlai-boot/tree/multi-module)
>
> 六种后端共享同一套 **RESTful API 规范** 和 **数据库结构**,前端可无缝切换。
## 文档资源
| 资源 | 地址 |
|:-----|:-----|
| 📖 完整文档站 | [www.youlai.tech](https://www.youlai.tech/) |
| 🖥️ PC 端在线预览 | [vue.youlai.tech](https://vue.youlai.tech) |
| 📱 移动端在线预览 | [app.youlai.tech](https://app.youlai.tech) |
| 🔗 Apifox 接口文档 | [apifox.com](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5) |
| 🔗 本地接口文档 | [localhost:8000/doc.html](http://localhost:8000/doc.html) |
## 参与贡献
欢迎提交 Issue 和 Pull Request详见 [贡献指南](https://www.youlai.tech/faq/help)。
[![Contributors](https://contrib.rocks/image?repo=haoxianrui/youlai-boot)](https://github.com/haoxianrui/youlai-boot/graphs/contributors)
## 开源协议
本项目基于 [Apache License 2.0](LICENSE) 开源,可免费用于商业项目。
---
<p align="center">
<img src="./docs/images/qr/wechat-offical.png" height="180" alt="有来技术公众号">
&nbsp;&nbsp;&nbsp;&nbsp;
<img src="./docs/images/qr/wechat-personal.png" height="180" alt="个人微信">
</p>
<p align="center">
<sub>公众号「有来技术」</sub>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<sub>添加作者微信</sub>
</p>
<p align="center"><em>技术交流 · 问题反馈 · 商务合作</em></p>