executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
ruoyi-cloudUse when scaffolding Java Spring Cloud microservice backends — Nacos service discovery, Sentinel rate limiting, Seata distributed transactions, Spring Boot 3 + Vue 3 admin. RuoYi-Cloud: popular Chinese Spring Cloud microservice boilerplate framework.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: ruoyi-cloud description: "Use when scaffolding Java Spring Cloud microservice backends — Nacos service discovery, Sentinel rate limiting, Seata distributed transactions, Spring Boot 3 + Vue 3 admin. RuoYi-Cloud: popular Chinese Spring Cloud microservice boilerplate framework." tags:
项目地址: https://gitee.com/y_project/RuoYi-Cloud
GitHub 镜像: https://github.com/yangzongzhuan/RuoYi-Cloud
许可证: MIT
RuoYi-Cloud 主要特性:
RuoYi-Cloud
├── ruoyi-gateway # API 网关
├── ruoyi-auth # 认证服务
├── ruoyi-modules
│ ├── ruoyi-system # 系统模块
│ ├── ruoyi-gen # 代码生成
│ ├── ruoyi-job # 定时任务
│ └── ruoyi-file # 文件服务
├── ruoyi-api # 远程调用 Feign 接口
├── ruoyi-common # 公共工具
├── ruoyi-visual
│ ├── ruoyi-monitor # Spring Boot Admin
│ └── ruoyi-visual-name # Nacos / Sentinel UI 入口
└── ruoyi-ui # Vue 3 前端
| 组件 | 版本 |
|---|---|
| RuoYi-Cloud | 3.6.8(最新,2026-03) |
| Spring Boot | 4.0.x(v3.6.8 发布版)/ 3.x(springboot3 分支) |
| Spring Cloud | 2025.1.x |
| Spring Cloud Alibaba | 2025.1.0.0 |
| JDK | 17+(Spring Boot 4 要求 17+) / 8(老分支) |
| Maven | 3.9+(官方使用 3.11) |
| MySQL | 5.7+ / 8.0 |
| Redis | 5.0+ |
| Nacos | 2.x |
| Sentinel | 1.8+ |
| Seata | 1.6+(可选) |
| Node.js | 18+ |
# 1. 克隆
git clone https://gitee.com/y_project/RuoYi-Cloud.git
cd RuoYi-Cloud
# 2. 数据库
mysql -u root -p < sql/ry_20260321.sql
mysql -u root -p < sql/ry_config_20260311.sql
mysql -u root -p < sql/quartz.sql # 定时任务表
# 3. Nacos:将 nacos/config 下 .yml 推送到 Nacos
# 或直接通过控制台导入 ZIP
# 4. 启动基础设施
docker compose -f docker/docker-compose.yml up -d # 含 mysql/redis/nacos
# 5. 启动后端
mvn clean install -DskipTests
# 顺序:ruoyi-gateway → ruoyi-auth → ruoyi-modules-system → 其它
# 6. 前端
cd ruoyi-ui
npm install --registry=https://registry.npmmirror.com
npm run dev # http://localhost:80
默认账号:admin / admin123。
每个微服务启动时从 Nacos 拉取:
ruoyi-gateway-dev.yml
ruoyi-auth-dev.yml
ruoyi-system-dev.yml
application-dev.yml # 公共
sentinel-ruoyi-gateway.json # Sentinel 限流规则
切换环境:spring.profiles.active=dev|test|prod。
请求流程:
Client → Gateway
├─ 路由匹配(lb://ruoyi-system)
├─ AuthFilter:从 Header 取 token,调 redis 校验
├─ Sentinel:限流 / 熔断
└─ 转发到目标服务(带 user_key/user_id)
# ruoyi-gateway-dev.yml
spring:
cloud:
gateway:
routes:
- id: ruoyi-system
uri: lb://ruoyi-system
predicates:
- Path=/system/**
filters:
- StripPrefix=1
获取 token:
curl -X POST http://localhost:8080/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"admin123","code":"x","uuid":"x"}'
sys_user / sys_role / sys_menu / sys_dept / sys_role_menu / sys_user_role@RequiresPermissions("system:user:list")@PreAuthorize("@ss.hasPermi('system:user:edit')")
@PutMapping
public AjaxResult edit(@RequestBody SysUser user) { ... }
@FeignClient(value = "ruoyi-system", contextId = "remoteUserService")
public interface RemoteUserService {
@GetMapping("/user/info/{username}")
R<LoginUser> getUserInfo(@PathVariable("username") String username);
}
@SentinelResource(value = "listUser",
blockHandler = "listUserBlock",
fallback = "listUserFallback")
public AjaxResult list() { ... }
控制台 localhost:8718 配置规则,热更新到 Nacos。
@GlobalTransactional(rollbackFor = Exception.class)
public void createOrder(...) {
orderService.save(...);
accountService.deduct(...);
inventoryService.reduce(...);
}
需启动 Seata Server + 在每个微服务接入 io.seata:seata-spring-boot-starter。
t_ 前缀业务表)生成内容:Entity / Mapper.xml / Mapper / Service / ServiceImpl / Controller + Vue 页面 + SQL(菜单 + 权限)。
后台「系统监控 → 定时任务」 → 添加:
ryTaskryParams('test')0 0/5 * * * ?@Component("ryTask")
public class RyTask {
public void ryParams(String params) { /* ... */ }
}
@Log(title = "...", businessType = ...)http://localhost:9100/-javaagent:skywalking-agent.jarcd docker
sh deploy.sh save # 构建并保存镜像
sh deploy.sh base # mysql/redis/nacos
sh deploy.sh server # 业务服务
sh deploy.sh web # 前端
ruoyi-modules-mybiz,不要直接改 systemcom.ruoyi 替换为公司域名(IDE 重构)@CacheEvict 在权限变更时清空ruoyi-modules/ 下新建模块 → 注册到 Nacos → 网关配置路由namespace 与 group 一致,否则无法发现tx-service-group 必须与 Nacos 配置一致,否则不回滚ruoyi-modules-mybiz,不要直接修改 system 模块,方便升级| 场景 | 推荐方案 |
|---|---|
| Java 微服务后台 | RuoYi-Cloud |
| .NET 微服务后台 | Admin.NET(单体/插件式) |
| 简单单体应用 | RuoYi(单体版) |
| 前端定制 | RuoYi-Cloud 自带 Vue3 前端,也可替换为 React/Angular |
| 问题 | 解决 |
|---|---|
| 启动慢/服务发现不到 | 检查 Nacos 命名空间与 group 一致 |
| 鉴权失败 401 | Redis 中 token 过期;时间不同步 |
| 前端 401 反复 | 检查 axios 拦截器与刷新机制 |
| 分布式事务不回滚 | Seata tx-service-group 与配置中心一致 |
| 性能问题 | 网关 + 业务服务横向扩容;启用本地缓存 |