{"id":16422566,"url":"https://github.com/haoxianrui/youlai-boot","last_synced_at":"2025-04-12T15:36:31.289Z","repository":{"id":157914567,"uuid":"609058419","full_name":"haoxianrui/youlai-boot","owner":"haoxianrui","description":"🌈 基于 Java 17 + Spring Boot 3 + Spring Security 6 + Vue 3 + Element-Plus 构建的前后端分离单体权限管理系统。","archived":false,"fork":false,"pushed_at":"2024-10-10T10:38:08.000Z","size":5433,"stargazers_count":193,"open_issues_count":2,"forks_count":69,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-12T07:37:00.086Z","etag":null,"topics":["aliyun-oss","element-plus","java-springboot","java17","jwt","knife4j","minio","mybatis","mybatis-plus","mysql","rabbitmq","redis","redisson","springboot3","springsecurity6","stomp","swagger","vue3","websocket","xxl-job"],"latest_commit_sha":null,"homepage":"https://vue3.youlai.tech","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haoxianrui.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-03T09:38:39.000Z","updated_at":"2024-10-10T10:38:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"d7ec0a69-f9c6-47d5-a791-1533710d0397","html_url":"https://github.com/haoxianrui/youlai-boot","commit_stats":null,"previous_names":["haoxianrui/youlai-boot"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxianrui%2Fyoulai-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxianrui%2Fyoulai-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxianrui%2Fyoulai-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxianrui%2Fyoulai-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haoxianrui","download_url":"https://codeload.github.com/haoxianrui/youlai-boot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590357,"owners_count":21129798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aliyun-oss","element-plus","java-springboot","java17","jwt","knife4j","minio","mybatis","mybatis-plus","mysql","rabbitmq","redis","redisson","springboot3","springsecurity6","stomp","swagger","vue3","websocket","xxl-job"],"created_at":"2024-10-11T07:37:01.742Z","updated_at":"2025-04-12T15:36:31.274Z","avatar_url":"https://github.com/haoxianrui.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n   \u003cimg alt=\"logo\" width=\"100\" height=\"100\" src=\"https://foruda.gitee.com/images/1733417239320800627/3c5290fe_716974.png\"\u003e\n   \u003ch2\u003eyoulai-boot\u003c/h2\u003e\n   \u003cimg alt=\"有来技术\" src=\"https://img.shields.io/badge/Java -17-brightgreen.svg\"/\u003e\n   \u003cimg alt=\"有来技术\" src=\"https://img.shields.io/badge/SpringBoot-3.3.6-green.svg\"/\u003e\n   \u003ca href=\"https://gitee.com/youlaiorg/youlai-boot\" target=\"_blank\"\u003e\n     \u003cimg alt=\"有来技术\" src=\"https://gitee.com/youlaiorg/youlai-boot/badge/star.svg\"/\u003e\n   \u003c/a\u003e     \n   \u003ca href=\"https://github.com/haoxianrui\" target=\"_blank\"\u003e\n     \u003cimg alt=\"有来技术\" src=\"https://img.shields.io/github/stars/haoxianrui/youlai-boot.svg?style=social\u0026label=Stars\"/\u003e\n   \u003c/a\u003e\n   \u003cbr/\u003e\n   \u003cimg alt=\"有来技术\" src=\"https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg\"/\u003e\n   \u003ca href=\"https://gitee.com/youlaiorg\" target=\"_blank\"\u003e\n     \u003cimg alt=\"有来技术\" src=\"https://img.shields.io/badge/Author-有来开源组织-orange.svg\"/\u003e\n   \u003c/a\u003e\n\u003c/div\u003e\n\n![](https://raw.gitmirror.com/youlaitech/image/main/docs/rainbow.png)\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca target=\"_blank\" href=\"https://vue.youlai.tech/\"\u003e🖥️ 在线预览\u003c/a\u003e |  \u003ca target=\"_blank\" href=\"https://youlai.blog.csdn.net/article/details/145178880\"\u003e📑 阅读文档\u003c/a\u003e |  \u003ca target=\"_blank\" href=\"https://www.youlai.tech/youlai-boot\"\u003e🌐 官网\u003c/a\u003e\n\u003c/div\u003e\n\n## 📢 项目简介\n\n基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Vue 3、Element-Plus 构建的前后端分离单体权限管理系统。 [Mybatis-Flex 版本](https://gitee.com/youlaiorg/youlai-boot-flex)\n\n- **🚀 开发框架**: 使用 Spring Boot 3 和 Vue 3，以及 Element-Plus 等主流技术栈，实时更新。\n\n- **🔐 安全认证**: 基于 Spring Security 6 原生架构，集成 JWT 令牌自动续期（无状态）和 Redis 会话多端互斥管理（实时强制离线）双重认证机制，构建企业级身份安全中枢。\n\n- **🔑 权限管理**: 基于 RBAC 模型，实现细粒度的权限控制，涵盖接口方法和按钮级别。\n\n- **🛠️ 功能模块**: 包括用户管理、角色管理、菜单管理、部门管理、字典管理等功能。\n\n## 🌈 项目源码\n\n| 项目类型       | Gitee                                                        | Github                                                       | GitCode                                                      |\n| -------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| ✅ Java 后端    | [youlai-boot](https://gitee.com/youlaiorg/youlai-boot)       | [youlai-boot](https://github.com/haoxianrui/youlai-boot)     | [youlai-boot](https://gitcode.com/youlai/youlai-boot)        |\n| vue3 前端      | [vue3-element-admin](https://gitee.com/youlaiorg/vue3-element-admin) | [vue3-element-admin](https://github.com/youlaitech/vue3-element-admin) | [vue3-element-admin](https://gitcode.com/youlai/vue3-element-admin) |\n| uni-app 移动端 | [vue-uniapp-template](https://gitee.com/youlaiorg/vue-uniapp-template) | [vue-uniapp-template](https://github.com/youlaitech/vue-uniapp-template) | [vue-uniapp-template](https://gitcode.com/youlai/vue-uniapp-template) |\n\n\n\n## 📚 项目文档\n\n| 文档名称          | 访问地址                                                                                   |\n|---------------|-------------------------------------------------------------------------------------------|\n| 在线接口文档        | [https://www.apifox.cn/apidoc](https://www.apifox.cn/apidoc/shared-195e783f-4d85-4235-a038-eec696de4ea5) |\n| 项目介绍与使用指南     | [https://www.youlai.tech/youlai-boot/](https://www.youlai.tech/youlai-boot/)              |\n| 功能详解与操作手册     | [https://youlai.blog.csdn.net/article/details/145178880](https://youlai.blog.csdn.net/article/details/145178880) |\n| 新手入门指南(项目0到1) | [https://youlai.blog.csdn.net/article/details/145177011](https://youlai.blog.csdn.net/article/details/145177011) |\n\n\n## 📁 项目目录\n\n\n\u003cdetails\u003e\n\u003csummary\u003e 目录结构 \u003c/summary\u003e\n\n\u003cbr\u003e\n\n```\nyoulai-boot\n├── docker                              # Docker 目录\n│   ├── docker-compose.yml              # docker-compose 脚本\n├── sql                                 # SQL脚本\n│   ├── mysql                           # MySQL 脚本\n├── src                                 # 源码目录\n│   ├── common                          # 公共模块\n│   │   ├── annotation                  # 注解定义\n│   │   ├── base                        # 基础类\n│   │   ├── constant                    # 常量\n│   │   ├── enums                       # 枚举类型\n│   │   ├── exception                   # 异常处理\n│   │   ├── model                       # 数据模型\n│   │   ├── result                      # 结果封装\n│   │   └── util                        # 工具类\n│   ├── config                          # 自动装配配置\n│   │   └── property                    # 配置属性目录\n│   ├── core                            # 核心功能\n│   │   ├── aspect                      # 切面(日志、防重提交)\n│   │   ├── filter                      # 过滤器(请求日志、限流)\n│   │   ├── handler                     # 处理器(数据权限、数据填充)\n│   │   └── security                    # Spring Security 安全模块\n│   ├── modules                         # 业务模块\n│   │   ├── member                      # 会员模块【业务模块演示】\n│   │   ├── order                       # 订单模块【业务模块演示】\n│   │   ├── product                     # 商品模块【业务模块演示】\n│   ├── shared                          # 共享模块\n│   │   ├── auth                        # 认证模块\n│   │   ├── file                        # 文件模块\n│   │   ├── codegen                     # 代码生成模块\n│   │   ├── mail                        # 邮件模块\n│   │   ├── sms                         # 短信模块\n│   │   └── websocket                   # WebSocket 模块\n│   ├── system                          # 系统模块\n│   │   ├── controller                  # 控制层\n│   │   ├── converter                   # MapStruct 转换器\n│   │   ├── event                       # 事件处理\n│   │   ├── handler                     # 处理器\n│   │   ├── listener                    # 监听器\n│   │   ├── model                       # 模型层\n│   │   │   ├── bo                      # 业务对象\n│   │   │   ├── dto                     # 数据传输对象\n│   │   │   ├── entity                  # 实体对象\n│   │   │   ├── form                    # 表单对象\n│   │   │   ├── query                   # 查询参数对象\n│   │   │   └── vo                      # 视图对象\n│   │   ├── mapper                      # 数据库访问层\n│   │   └── service                     # 业务逻辑层\n│   └── YouLaiBootApplication           # 启动类\n└── end                             \n```\n\u003c/details\u003e\n\n\n\n## 🚀 项目启动\n\n📚 完整流程参考: [项目启动](https://www.youlai.tech/youlai-boot/1.%E9%A1%B9%E7%9B%AE%E5%90%AF%E5%8A%A8/)\n\n1. **克隆项目**\n\n   ```bash\n   git clone https://gitee.com/youlaiorg/youlai-boot-flex.git\n   ```\n\n2. **数据库初始化**\n\n   执行 [youlai_boot.sql](sql/mysql/youlai_boot.sql) 脚本完成数据库创建、表结构和基础数据的初始化。\n\n3. **修改配置**\n\n   默认连接`有来`线上 MySQL/Redis（仅读权限），本地开发时请修改 [application-dev.yml](src/main/resources/application-dev.yml) 中的 MySQL 和 Redis 连接信息。\n\n4. **启动项目**\n\n   执行 [YoulaiBootApplication.java](src/main/java/com/youlai/boot/YoulaiBootApplication.java) 的 main 方法完成后端项目启动；\n\n   访问接口文档地址 [http://localhost:8989/doc.html](http://localhost:8989/doc.html) 验证项目启动是否成功。\n\n\n## 🚀 项目部署\n\n参考官方文档: [项目部署指南](https://www.youlai.tech/youlai-boot/5.%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/)\n\n\n## ✅ 项目统计\n\n![](https://repobeats.axiom.co/api/embed/544c5c0b5b3611a6c4d5ef0faa243a9066b89659.svg \"Repobeats analytics image\")\n\nThanks to all the contributors!\n\n[![](https://contrib.rocks/image?repo=haoxianrui/youlai-boot)](https://github.com/haoxianrui/youlai-boot/graphs/contributors)\n\n\n## 💖 加交流群\n\n① 关注「有来技术」公众号，点击菜单 **交流群** 获取加群二维码（此举防止广告进群，感谢理解和支持）。\n\n② 直接添加微信 **`haoxianrui`** 备注「前端/后端/全栈」。\n\n![有来技术公众号](https://foruda.gitee.com/images/1737108820762592766/3390ed0d_716974.png)  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaoxianrui%2Fyoulai-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaoxianrui%2Fyoulai-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaoxianrui%2Fyoulai-boot/lists"}