# Ruoyi-Vite
**Repository Path**: gitchenxing/ruoyi-vite
## Basic Information
- **Project Name**: Ruoyi-Vite
- **Description**: 后端使用springboot3 + jdk21,前端使用vue3 + ts,集成mybatis-plus、xxl-job、netty-socket.io、lombok等插件并尽量做到可拔插,集成x-fileStorage满足多平台大文件分片存储,调整不规范的代码使风格更统一,可以理解为若依的插件化规范版
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-08-12
- **Last Updated**: 2025-08-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Yi-Vite 2.0.1-V
用心写码,即使项目 | Heart Code, Even for Projects
### 前言
想调整的东西很多,想法也很多,在不增加使用成本的情况下进行了大量调整,集成很多插件并尽量做到可拔插,优化了部分代码实现 ,更多功能以待后续迭代!
### 技术架构
#### 后端架构
* springboot3: 使用官方推荐配置方式,stater 引入插件
* springSecurity: 修改为官方建议用法,简单直接
* jdk21: 使用新语法 \[字符串模板,switch 等]
* lombok: 对类进行瘦身,使用构造方式注入
#### 前端架构
* vue3 + ts
* 使用 Socket.io 推送消息
* 整理 navBar 和布局设置,调整部分样式
### 项目优势
* 使用 jdk21 + lombok 语法重构所有代码,结构更清晰
* 规范类名 | 属性 | 方法和字段符合规范,减少编辑器标黄满足强迫症
* 在 MIT 的基础上更进一步,不保留作者信息,解决后顾之忧
* 在不增加学习成本的基础上集成较多实用组件并尽量做到可拔插
### 模块介绍
* vite-plugins 中的插件不需要可以移除,有些移除需要简单调整。
* vite-models 为自行开发模块。
```
com.vite
├── common // 基础模块
│ ├── annotation // 自定义注解
│ ├── config // 全局配置
│ ├── constant // 通用常量
│ ├── core // 核心控制
│ ├── enums // 通用枚举
│ ├── exception // 通用异常
│ ├── filter // 过滤器处理
│ └── utils // 工具类
├── framework // 框架核心
│ ├── aspectj // 注解实现
│ ├── config // 系统配置
│ ├── datasource // 数据权限
│ ├── interceptor // 拦截器
│ ├── manager // 异步处理
│ ├── security // 权限控制
│ └── web // 前端控制
├── vite-admin // 后台服务
├── vite-models // 业务场景
│ ├── file // x-fileStorage文件上传
│ ├── generator // 代码生成
│ └── starter // 业务场景启动器
├── vite-plugins // 插件
│ ├── mybatis-plus // mybatis-plus插件
│ ├── xxl-job // xxl-job插件
│ ├── netty-socket.io // socket.io插件
│ ├── easy-captcha // easy-captcha插件
│ ├── redis // redis
│ └── starter // 插件整合模块
└── vite-system // 系统代码
```
### 功能详情
#### 1. 使用 [EasyCaptcha](https://gitee.com/ele-admin/EasyCaptcha) 生成图片验证码
* ~~**T**: 解决原二维码偶发难以区分的问题,并且提供更多的选择,压测性能堪忧,不同类型的验证码执行时间也不同,与 goole 的 captcha 存在一定差距~~
* **A**: 已定位到原因是由于字体文件多次生成导致,已修复不兼容 java9 + 和性能问题以 jar 包方式提供建议本地 Nexus 上传 \[方式不可取]
#### 2. 接口文档集成 [knife4j](https://doc.xiaominfo.com/docs/features/enhance)
* **A**: 添加文档增强配置,详见 knife4j 官方文档,建议开启生产环境保护~~和用户校验,spring3 目前未找到优秀实现方式已移除~~
#### 3. 集成 [passay](https://www.passay.org/) 密码强度校验
* **A**: 正则等简单密码校验难以解决最少一个大写英文字母和不允许连续按键盘等需求,及三级等保需要进行登录后提示
#### 5. 集成[socket.io](https://socket.io/)调整通知公告
* **A**: 通知公告被动自己去查询的话不太合理,使用 socket.io推送 \[有意向改为 SSE 推送]
#### 7. [整合 easyExcel](https://easyexcel.opensource.alibaba.com/docs/current)
* **T**: 使用 easyExcel 要考虑与 poi包的兼容和注解之间的兼容
* **A**: 尽管 SXSSFWorkbook 已经被优化过,但在速度和内存占用上 easyExcel 都更具优势,大量数据导入使用 easyExcel, 仅通过导入用户提供示例代码,目前已有更优秀的实现方式可以选择稳定版本替换
#### 11. 统一文件上传多场景集成 [X FileStorage](https://x-file-storage.xuyanwu.cn/#/) 实现
* **A**: 接入 X FileStorage 实现通配 local/minio/oss等平台分片大文件上传
### 演示图
### 推荐资源
#### 1. [bootSchool](https://www.bootschool.net/ascii)生成 banner.txt 或启动打印
#### 2. [lombok](https://www.yuque.com/vxixfq/pig/pk4213) 教程
#### 3. 生成[美化二维码](http://tool.mkblog.cn/qrbtf/)地址