若依Cloud框架部署_代码修改器使用详解
若依 Cloud 框架部署与代码修改器使用详解
课程位置:第四阶段「微服务项目 + AI 应用」第 5 课
前置知识:微服务体系架构、Nacos、Feign、Sentinel、Gateway、Redis、MySQL、Maven、Git
本课主题:若依 Cloud 框架部署|代码修改器使用
后续课程:智途 AI 旅行微服务实战——数据库设计与短信验证
学习目标:真正看懂 RuoYi-Cloud 的模块结构,理解前面学习的 Nacos、Feign、Sentinel、Gateway 在完整脚手架中的位置;能够从零完成 Spring Boot 3 分支下载、数据库初始化、Redis/Nacos 启动、核心服务启动、前端联调;掌握若依框架包名/项目名修改器的正确使用方法,并学会修改后的完整检查清单,避免“改了名字但项目启动不了”。
一、这一课和前四课有什么不同
前四课我们是:
自己搭一个最小项目
例如:
gateway
user-service
order-service
然后一步一步加入:
Nacos
Feign
Sentinel
Gateway
这一课开始:
不再从零造轮子
而是打开一个已经搭好的:
企业级微服务脚手架
也就是:
RuoYi-Cloud
二、可以把前四课理解成“学零件”
我们已经知道:
Nacos
→ 服务注册发现 + 配置中心
Feign
→ 服务间远程调用
Sentinel
→ 限流、熔断、降级
Gateway
→ 微服务统一入口
现在若依 Cloud:
把这些零件
组装成了完整系统
三、这一课最重要的目标不是“把项目跑起来”
单纯:
启动成功
只是最低要求。
真正目标:
你能解释:
每一个模块为什么存在
四、RuoYi-Cloud 是什么
RuoYi-Cloud 是若依官方的:
前后端分离
+
Spring Cloud & Alibaba
+
分布式微服务
版本。
官方当前说明其后端使用:
Spring Boot
Spring Cloud
Spring Cloud Alibaba
基础设施包括:
Nacos
Redis
Sentinel
Seata
五、不要把三种若依混淆
常见:
RuoYi
RuoYi-Vue
RuoYi-Cloud
六、RuoYi
传统:
单体
七、RuoYi-Vue
前后端分离:
Spring Boot 单体后端
+
Vue 前端
八、RuoYi-Cloud
Spring Cloud 微服务
+
前后端分离
九、所以你现在学习的是
RuoYi-Cloud
不是前面我们学过的:
RuoYi-Vue 单体版本
十、当前版本必须先确认
截至本笔记整理时间:
2026-09-10
若依 Cloud 当前发布版本:
3.6.8
十一、最重要的分支变化
当前官方仓库:
master
已经是:
Spring Boot 4.x
JDK 17+
Nacos 3.x
十二、你现在应该用哪个分支
你当前学习主线:
JDK17
+
Spring Boot 3
所以应该使用:
springboot3
十三、官方当前分支关系
master
→ Spring Boot 4.x
springboot3
→ Spring Boot 3.x
springboot2
→ Spring Boot 2.x
十四、这一点非常重要
如果你直接:
git clone ...
然后什么都不做,
当前默认:
master
会进入:
Spring Boot 4
这和我们前面课程:
Spring Boot 3
会出现版本差异。
十五、正确克隆方式
git clone https://gitee.com/y_project/RuoYi-Cloud.git
进入:
cd RuoYi-Cloud
切分支:
git checkout springboot3
十六、然后一定确认
git branch
应该看到:
* springboot3
十七、不要只相信 IDEA 左下角分支文字
命令再确认一次:
git status
十八、为什么这么谨慎
因为:
你后面如果报版本错
首先要排除:
自己下错分支
十九、当前 springboot3 分支技术基线
当前仓库 POM 已经是若依:
3.6.8
并使用:
Java 17
Spring Boot 3.5.x
Spring Cloud 2025.0.x
Spring Cloud Alibaba 2025.0.x
二十、当前仓库会持续更新
所以不要死记:
某一个 patch 版本永远不变
应该记:
分支和主版本关系
二十一、为什么官方旧文档里还会看到 JDK8
若依的部分环境部署文档:
历史很久
其中可能仍写:
JDK 1.8
MySQL 5.7
Nacos 2.x
二十二、这是不是说明 springboot3 也用 JDK8
不是。
当前官方仓库已经明确:
springboot3
= JDK17+
二十三、以后遇到“文档和代码不一致”
优先顺序:
当前目标分支代码
↓
当前 README / POM
↓
当前版本更新日志
↓
通用旧文档
二十四、为什么代码分支更重要
因为:
你真正要运行的是当前代码
二十五、RuoYi-Cloud 当前后端模块
官方当前仓库大体结构:
RuoYi-Cloud
├─ ruoyi-auth
├─ ruoyi-gateway
├─ ruoyi-api
├─ ruoyi-common
├─ ruoyi-modules
├─ ruoyi-visual
├─ docker
├─ sql
└─ pom.xml
二十六、先不要急着打开所有 Java 文件
第一步:
先看顶层模块
二十七、为什么
微服务项目最怕:
一上来打开某个 Controller
却不知道:
它属于哪个服务
二十八、ruoyi-gateway
端口通常:
8080
职责:
统一入口
路由
鉴权
验证码过滤
黑名单/白名单
Sentinel Gateway 流控
二十九、它对应你刚学的
Spring Cloud Gateway
三十、ruoyi-auth
端口常见:
9200
职责:
认证中心
主要处理:
登录
Token
退出
认证流程
三十一、为什么 Auth 单独拆服务
认证属于:
系统公共能力
多个业务模块:
都会使用
三十二、ruoyi-system
位于:
ruoyi-modules
常见端口:
9201
三十三、system 负责什么
最核心后台系统数据:
用户
角色
菜单
部门
岗位
字典
参数
三十四、这和单体若依中的 system 类似
区别:
现在它是一个独立微服务
三十五、ruoyi-gen
常见端口:
9202
职责:
代码生成
三十六、ruoyi-job
常见端口:
9203
职责:
定时任务
三十七、ruoyi-file
常见端口:
9300
职责:
文件服务
三十八、ruoyi-visual-monitor
常见端口:
9100
职责:
服务监控
三十九、ruoyi-api
这是非常关键的模块。
它不是:
一个独立运行服务
而是:
远程接口契约模块
四十、你前面自己写过什么
我们前面设计过:
user-api
里面放:
Feign Client
Remote DTO
四十一、若依 Cloud 已经替你做了
例如:
ruoyi-api-system
四十二、所以你会看到
RemoteUserService
等远程接口。
四十三、这就是前面学 Feign 的意义
你现在看到:
RemoteXXXService
应该想到:
@FeignClient
四十四、ruoyi-common
这个模块非常重要。
它不是:
一个服务
而是:
公共依赖模块集合
四十五、常见子模块
当前官方 README 包括:
ruoyi-common-core
ruoyi-common-datascope
ruoyi-common-datasource
ruoyi-common-log
ruoyi-common-redis
ruoyi-common-seata
ruoyi-common-security
ruoyi-common-sensitive
ruoyi-common-swagger
四十六、ruoyi-common-core
放:
核心常量
通用工具
基础对象
通用异常
公共模型
四十七、ruoyi-common-security
负责:
安全相关公共能力
例如:
SecurityUtils
自定义注解
远程认证上下文
Feign 安全配置
四十八、ruoyi-common-redis
负责:
Redis 公共封装
四十九、ruoyi-common-datascope
负责:
数据权限
你之前若依单体已经学过:
DataScope
五十、微服务里数据权限为什么仍然需要
因为:
Gateway 只负责入口
真正查询数据:
发生在业务服务
所以:
数据权限仍要在业务服务执行
五十一、ruoyi-common-log
负责:
操作日志
五十二、ruoyi-common-datasource
负责:
多数据源支持
五十三、ruoyi-common-seata
负责:
Seata 分布式事务支持
五十四、你现在为什么先不启用 Seata
这节课目标:
跑通基本微服务
不要一开始把:
Seata
也加进排错范围。
五十五、ruoyi-common-sensitive
负责:
数据脱敏
例如:
手机号
身份证
邮箱
展示时脱敏。
五十六、ruoyi-common-swagger
负责:
API 文档公共配置
当前版本实际依赖:
Springdoc
而不是老版本 Swagger2。
五十七、ruoyi-visual
主要:
图形化管理类服务
例如:
监控中心
五十八、最小启动到底需要哪些服务
官方传统环境部署文档把核心模块列为:
Gateway
Auth
System
必需。
五十九、所以第一次学习不要全部启动
不需要先启动:
Gen
Job
File
Monitor
Seata
六十、第一次最小运行集
MySQL
Redis
Nacos
ruoyi-gateway
ruoyi-auth
ruoyi-system
再加:
前端
六十一、为什么这样最适合你
如果一次启动:
10 个模块
出现一个报错:
控制台全乱
六十二、推荐学习顺序
基础设施
↓
核心后端
↓
前端
↓
可选模块
六十三、基础设施第一层:MySQL
若依核心数据需要:
业务数据库
传统名称:
ry-cloud
六十四、Nacos 数据
若依项目还会准备:
Nacos 配置相关 SQL
传统数据库名:
ry-config
六十五、最重要规则
一定使用:
你当前 springboot3 分支 sql 目录里的脚本
不要:
从博客下载一个 2021 年的 SQL
六十六、为什么
当前若依更新日志已经多次:
更新数据库结构
更新 Nacos 表结构
不同版本:
SQL 可能不完全一致
六十七、数据库脚本原则
代码版本
=
SQL 脚本版本
六十八、不要代码 3.6.8
配:
SQL 3.2.0
六十九、MySQL 版本
官方项目长期兼容:
MySQL 5.7+
当前你平时学习环境:
MySQL 8.0
通常可以使用。
七十、MySQL 8 常见额外问题
例如:
时区
字符集
保留关键字
认证插件
遇到数据库启动问题:
看实际异常
不要直接怀疑若依所有代码。
七十一、建议字符集
utf8mb4
七十二、为什么不是 utf8
MySQL utf8mb4:
支持更完整 Unicode
七十三、第二层:Redis
若依 Cloud 权限认证:
依赖 Redis
七十四、Redis 用来做什么
典型:
登录会话
Token 状态
验证码
缓存
在线用户
七十五、如果 Redis 没启动
常见表现:
Auth/Gateway/System
连接 Redis 失败
七十六、不要只看最后一行
例如:
Application run failed
真正原因可能在上面:
Unable to connect to Redis
七十七、第三层:Nacos
Nacos 在若依 Cloud 中同时承担:
注册中心
配置中心
七十八、为什么 Nacos 必须先启动
因为业务服务启动时需要:
读取配置
注册服务
七十九、官方环境部署也明确说明
运行若依 Cloud 前:
先启动 Nacos
八十、Nacos 版本
当前 springboot3 分支:
JDK17+
Nacos 3.x
八十一、当前仓库 Docker 示例
官方当前 springboot3 Docker Compose 使用:
nacos/nacos-server:v3.0.2
并映射:
8848
9848
9849
八十二、这说明什么
不要继续照老教程:
Nacos 1.4.1
作为当前 springboot3 主线。
八十三、Nacos 3 安全配置也变了
Docker 示例中已经包含:
NACOS_AUTH_TOKEN
NACOS_AUTH_IDENTITY_KEY
NACOS_AUTH_IDENTITY_VALUE
所以:
新版认证不能完全照老版默认账户思维
八十四、本地学习两种基础设施方式
第一种:
本地安装
MySQL、Redis、Nacos:
分别启动
八十五、第二种
Docker Compose
仓库已经提供:
docker/docker-compose.yml
八十六、你当前基础阶段推荐哪种
如果 Docker 还不熟:
先本地单独启动
因为你能清楚看到:
哪个组件出了问题
八十七、Docker 熟悉以后
再:
docker compose
一键拉起基础环境。
八十八、为什么不建议第一次就全 Docker
一旦:
容器网络
volume
镜像
Nacos
数据库
一起出问题,
对新手:
排查层太多
八十九、IDEA 导入项目
建议:
直接打开顶层 pom.xml 所在目录
九十、IDEA 版本
你目前:
IDEA 2024.3
完全可以用于:
JDK17 + Spring Boot 3
九十一、JDK 选择
IDEA:
File
→ Project Structure
→ Project SDK
选择:
JDK17
九十二、Maven
你本地目前是:
Maven 3.6.3
满足若依传统要求。
但现代 Boot/插件如果后续出现兼容问题:
可考虑升级 Maven 3.9.x
课程当前先:
不强制改
九十三、为什么不建议一遇到错误就升级所有东西
因为:
变量太多
排错原则:
一次只改一个关键变量
九十四、第一次 Maven 导入
可能:
下载大量依赖
耐心等 Maven:
完成解析
九十五、如果 IDEA 全红
第一件事不是:
改代码
先确认:
Maven 是否完成导入
九十六、右侧 Maven
点击:
Reload All Maven Projects
九十七、命令行验证
在根目录:
mvn clean package -DskipTests
九十八、为什么命令行很重要
IDEA 显示异常时:
命令行能帮助区分
IDE 问题 vs Maven 项目问题
九十九、父 POM 先看什么
当前 springboot3 顶层:
groupId=com.ruoyi
artifactId=ruoyi
version=3.6.8
一百、还要看版本属性
核心:
java.version
spring-boot.version
spring-cloud.version
spring-cloud-alibaba.version
一百零一、为什么先看这些
后续任何:
NoSuchMethodError
ClassNotFoundException
Starter 版本错误
都可能与它们有关。
一百零二、若依父工程已经统一依赖
所以:
不要随便给子模块某个 Spring Cloud Starter
手动升级版本
一百零三、尤其不要
看某篇博客说最新版更好
然后只升级:
Gateway
Nacos Client
Feign
一百零四、正确
若依框架:
先保持官方版本整体一致
一百零五、第一遍部署不要改包名
非常重要。
正确顺序:
原版项目先跑通
↓
确认环境没问题
↓
Git 提交
↓
再使用修改器改名
↓
再次跑通
一百零六、为什么不能先改名
如果你:
下载以后立刻改 500 个文件
然后启动失败,
你不知道:
原项目环境问题
还是改名问题
一百零七、这是本课最重要的工程习惯之一
Baseline First
先建立:
可运行基线
一百零八、建议 Git 操作
原项目确认跑通后:
git checkout -b customize
一百零九、提交基线
git add .
git commit -m "chore: verify original ruoyi cloud baseline"
一百一十、为什么要提交
改名以后:
git diff
可以清楚看到:
修改器到底动了哪些文件
一百一十一、如果修改器改坏
直接:
git reset
或:
重新切基线分支
一百一十二、所以 Git 是你的保险绳
不要在:
唯一一份项目
上直接运行批量替换工具。
一百一十三、启动顺序总览
课程推荐:
1. MySQL
2. Redis
3. Nacos
4. ruoyi-system
5. ruoyi-auth
6. ruoyi-gateway
7. 前端
一百一十四、官方说核心模块没有严格先后
这是因为:
服务注册发现能够动态感知
但学习阶段:
按固定顺序更容易排错
一百一十五、为什么先 System
Auth 登录通常需要:
查询用户信息
最终会涉及:
system 服务
先启动它:
更直观
一百一十六、为什么 Gateway 最后启动也可以
因为:
内部核心服务已经可用
Gateway 一启动:
路由就有目标
一百一十七、真正硬前置
主要:
MySQL
Redis
Nacos
一百一十八、Nacos 配置导入
若依 Cloud 很多配置:
不直接放在各模块 application.yml
而是在:
Nacos Config
一百一十九、这就是为什么你打开服务配置
会觉得:
怎么这么少
因为:
真正数据库/Redis/MyBatis 等配置
可能在 Nacos
一百二十、先找 sql 目录
你应该寻找:
业务 SQL
Nacos 配置 SQL
一百二十一、为什么 Nacos 配置会用 SQL 初始化
若依已经准备:
默认 DataId
比如:
application-dev.yml
ruoyi-gateway-dev.yml
ruoyi-auth-dev.yml
ruoyi-system-dev.yml
具体名称:
以当前分支 SQL 为准
一百二十二、不要自己从零创建所有 DataId
先:
导入官方当前版本 SQL
一百二十三、再去 Nacos Console 观察
你会理解:
哪些配置是共享
哪些配置属于 Gateway
哪些属于 Auth
哪些属于 System
一百二十四、配置中心学习方法
不要:
一股脑复制配置
建议逐个看:
application-dev.yml
→ 公共配置
ruoyi-gateway-dev.yml
→ Gateway
ruoyi-auth-dev.yml
→ Auth
ruoyi-system-dev.yml
→ System
一百二十五、公共配置通常可能包含
Redis
Spring 公共设置
Feign
Sentinel
日志
具体:
看当前分支
一百二十六、system 配置通常重点
DataSource
MyBatis
业务参数
一百二十七、gateway 配置重点
Route
白名单
Sentinel
安全
一百二十八、auth 配置重点
认证相关
一百二十九、配置修改第一原则
不要:
看到 127.0.0.1 就全部改
先分清:
这个地址是从哪个进程视角访问
一百三十、本机直接运行
如果:
所有服务都在 Windows 本机
那么:
127.0.0.1
通常就是本机。
一百三十一、Docker 中就不同
容器里的:
127.0.0.1
指:
当前容器自己
一百三十二、所以 Docker 服务之间
常使用:
容器服务名
例如:
ruoyi-mysql
ruoyi-redis
ruoyi-nacos
一百三十三、这是为什么 Docker Compose 配置看起来不同
不是:
框架逻辑变了
而是:
网络环境变了
一百三十四、第一次本机运行建议
统一:
MySQL localhost:3306
Redis localhost:6379
Nacos localhost:8848
先跑通。
一百三十五、修改 Nacos 数据库配置
重点确认:
URL
username
password
database
一百三十六、不要把数据库密码改在 Java 文件
正确:
Nacos 配置
一百三十七、Redis 同理
确认:
host
port
password
一百三十八、Nacos 3 认证
如果你的 Nacos:
开启认证
各服务就必须:
配置正确用户名/密码或对应认证参数
一百三十九、出现 403
例如:
user not found
往往:
不是 MyBatis 问题
而是:
Nacos 认证失败
一百四十、启动 ruoyi-system
在 IDEA 找:
RuoYiSystemApplication
启动。
一百四十一、启动成功应该关注
Server port
Nacos register
DataSource
Redis
MyBatis
一百四十二、Nacos Console
应该能看到:
ruoyi-system
一百四十三、如果 System 启动失败
先从异常底部向上看:
Caused by
一百四十四、常见原因
MySQL 未启动
数据库名错误
账号密码错误
Nacos 配置没导入
Redis 未启动
JDK 错
Maven 依赖未下载
一百四十五、再启动 ruoyi-auth
找:
RuoYiAuthApplication
一百四十六、Nacos 中
应该出现:
ruoyi-auth
一百四十七、Auth 与 System 怎么通信
这里就会看到你前面学的:
Feign
Auth:
通过 RemoteUserService
去获取:
系统用户信息
一百四十八、这就是完整项目里的 Feign
不再是课程里的:
UserClient
而是:
RemoteXXXService
一百四十九、再启动 ruoyi-gateway
找:
RuoYiGatewayApplication
一百五十、Nacos
应该看到:
ruoyi-gateway
ruoyi-auth
ruoyi-system
一百五十一、Gateway 请求如何进入
大致:
Vue
↓
Gateway : 8080
↓
Route
├─ auth
└─ system
一百五十二、登录流程大图
Vue Login Page
↓
Gateway
↓
ruoyi-auth
↓
RemoteUserService
↓
ruoyi-system
↓
查询用户/角色/权限
↓
Auth 生成 Token / 登录状态
↓
Redis
↓
返回前端
一百五十三、后续普通请求
Vue
↓
Gateway
↓
校验 Token
↓
写入用户上下文 Header
↓
业务服务
↓
权限校验
一百五十四、这是不是和我们前面 Gateway 课一样
是。
你会看到:
前面的理论
现在全部落地
一百五十五、Gateway AuthFilter
若依 Cloud 中:
网关有鉴权 Filter
会做类似:
白名单判断
Token 获取
Token 解析
Redis 登录状态验证
用户信息 Header 传递
一百五十六、为什么你现在能看懂了
因为前一课已经学过:
GlobalFilter
ServerWebExchange
Header
白名单
一百五十七、若依为什么从 Header 传用户信息
内部业务服务:
需要知道当前登录用户
Gateway:
在入口完成身份解析
然后:
传递可信上下文
一百五十八、但为什么还要 common-security
因为下游:
需要统一读取和校验这些上下文
一百五十九、不要自己改成“前端直接传 userId”
这是:
严重安全错误
一百六十、登录成功后 Redis
会保存:
登录用户状态
所以 Gateway:
可以验证登录是否仍有效
一百六十一、登录流程继续拆
登录请求:
Vue
↓
Gateway
↓
/auth/login
↓
ruoyi-auth
一百六十二、Auth 不应该自己直接访问所有 system 表
微服务边界下:
Auth
↓ Feign
System
一百六十三、System 返回登录所需用户信息
例如:
用户基本信息
角色
权限标识
状态
一百六十四、Auth 做什么
校验密码
创建登录状态
生成 Token
写 Redis
一百六十五、后续请求
Gateway:
拿 Token
↓
解析身份
↓
校验 Redis 登录状态
↓
放行
一百六十六、你前面学过的 Nacos 在哪里
所有运行服务:
启动
↓
注册 Nacos
例如:
ruoyi-gateway
ruoyi-auth
ruoyi-system
一百六十七、Feign 怎么知道 system 地址
不是:
写死 9201
而是:
服务名
+
Nacos
+
LoadBalancer
一百六十八、你前面学过的 Gateway 在哪里
就是:
ruoyi-gateway
一百六十九、你前面学过的 Sentinel 在哪里
若依 Gateway 配置中:
有 Sentinel 流控集成
官方项目也明确:
流量控制框架选型 Sentinel
一百七十、为什么这一课突然容易很多
因为你不是:
第一次看到框架
而是:
已经知道每个底层组件为什么存在
一百七十一、前端应该选哪个
若依 Cloud 当前前端提供:
Vue2
Vue3 JavaScript
Vue3 TypeScript
一百七十二、官方当前维护重心
README 明确:
Vue3 是官方主推活跃版本
一百七十三、你当前学习建议
选择:
RuoYi-Cloud-Vue3
技术:
Vue3
Vite
Element Plus
Pinia
Vue Router 4
一百七十四、为什么不建议你现在选 Vue2
你已经:
学 Vue3
并且后面项目:
更适合现代 Vue3 技术栈
一百七十五、前端仓库是独立的
当前官方 README 给出的 Vue3 Cloud 前端:
RuoYi-Cloud-Vue3
不是:
普通 RuoYi-Vue3
一百七十六、不要下错前端
RuoYi-Vue3
主要配:
RuoYi-Vue 单体后端
而:
RuoYi-Cloud-Vue3
配:
RuoYi-Cloud
一百七十七、前端克隆
官方当前地址对应:
git clone https://gitcode.com/yangzongzhuan/RuoYi-Cloud-Vue3.git
一百七十八、进入目录
cd RuoYi-Cloud-Vue3
一百七十九、安装依赖
仓库 README 当前示例使用:
yarn --registry=https://registry.npmmirror.com
一百八十、启动
yarn dev
一百八十一、如果你习惯 npm
先看:
package.json
lock 文件
README
尽量:
跟项目原本包管理器
不要混着:
npm
yarn
pnpm
导致 lock 混乱。
一百八十二、为什么包管理器不要乱换
可能:
依赖解析结果不同
然后出现:
别人能跑
你不能跑
一百八十三、Node 版本
不要只照很老文档:
Node >= 12
当前 Vue3/Vite 项目:
实际要求要看 package.json engines / 当前 Vite
一百八十四、正确动作
node -v
然后:
对照当前前端仓库要求
一百八十五、推荐 Node 管理器
Windows 可以使用:
nvm-windows
这样不同项目:
切不同 Node
一百八十六、前端环境配置
通常关注:
.env.development
.env.production
vite.config.js
一百八十七、开发代理
Vue3 Vite:
通常把 /dev-api
或者项目定义的 API 前缀
代理到 Gateway
一百八十八、最终结构
Vue Dev Server
↓
Proxy
↓
Gateway : 8080
↓
Auth / System
一百八十九、前端不是直接访问 9201
不要:
Vue → ruoyi-system:9201
一百九十、正确
Vue
↓
Gateway
↓
System
一百九十一、为什么
这样:
统一鉴权
统一路由
隐藏内部服务
一百九十二、如果登录页能打开但登录失败
前端本身:
大概率已经启动
接下来查:
Gateway
Auth
System
Redis
数据库
一百九十三、浏览器 Network 是第一工具
按:
F12
看:
Request URL
Status
Response
Request Headers
一百九十四、401
通常先查:
Token / 登录认证
一百九十五、404
通常先查:
前端 API 路径
Gateway Route
一百九十六、503
通常先查:
Nacos 服务实例
一百九十七、500
需要:
看对应后端服务日志
不能只看浏览器:
500
一百九十八、第一次部署验收
必须完成:
Nacos 有 Gateway/Auth/System
前端登录页打开
admin 登录成功
用户管理能查询
菜单正常显示
一百九十九、默认管理员密码
若依传统文档默认:
admin / admin123
但是:
以当前分支初始化 SQL 和 README 为准
不要在真实生产:
保留默认密码
二百、如果能登录说明什么
至少说明:
Vue
Gateway
Auth
System
Redis
MySQL
Nacos
这条核心链:
基本跑通
二百零一、接下来再启动 ruoyi-gen
为什么:
后面要生成业务代码
二百零二、Gen 是可选服务
核心登录:
不需要它
二百零三、所以应该在核心系统跑通以后启动
这样出现问题:
只定位 Gen
二百零四、ruoyi-job
定时任务:
当前也可不启动
二百零五、ruoyi-file
如果你暂时:
不测试上传
也可以不启动。
二百零六、Monitor
学习初期:
可选
二百零七、为什么若依拆这些服务
它们的特点:
业务职责相对独立
可以按需运行
可以单独演进
二百零八、但为什么 System 还是比较大
因为若依本身:
是通用权限后台脚手架
系统管理能力:
高度相关
没必要把:
用户/角色/菜单
各拆一个服务。
二百零九、这正好证明
微服务不是一张表一个服务
二百一十、如何阅读若依 Cloud 代码
不要:
从第一行看到最后一行
二百一十一、推荐顺序
顶层 pom
↓
模块结构
↓
每个启动类
↓
bootstrap/application 配置
↓
Nacos 配置
↓
Gateway
↓
Auth
↓
Remote API
↓
System
↓
Common
二百一十二、第一条主线:登录
跟代码:
前端 login()
↓
Gateway
↓
Auth Controller
↓
Login Service
↓
RemoteUserService
↓
System
↓
Redis
二百一十三、第二条主线:用户列表
前端 user list
↓
Gateway
↓
ruoyi-system
↓
Controller
↓
Service
↓
Mapper
↓
MySQL
二百一十四、第三条主线:文件上传
Vue
↓
Gateway
↓
ruoyi-file
二百一十五、第四条主线:代码生成
Vue
↓
Gateway
↓
ruoyi-gen
↓
读取数据库表
↓
生成模板
二百一十六、这样阅读比“按文件夹一个个看”有效得多
因为:
你在跟业务链路
二百一十七、现在进入本课第二大主题:代码修改器
课程里说的:
代码修改器
主要指:
若依框架包名/项目名修改器
二百一十八、官方项目扩展页仍然列出
若依框架包名修改器
例如:
RuoYi-common-tools
RuoYi-MT
二百一十九、它主要能改什么
公开工具说明包括:
项目包名
项目名
模块文件夹名称
pom
站点标题
部分配置
脚本
二百二十、例如
原项目:
com.ruoyi
你想改:
com.zhitu
二百二十一、原模块
ruoyi-gateway
ruoyi-auth
ruoyi-system
可能想改:
zhitu-gateway
zhitu-auth
zhitu-system
二百二十二、为什么人肉全局 Replace 很危险
因为“ruoyi”可能出现在:
包路径
Maven artifactId
目录名
YAML
SQL
Nacos DataId
Docker 路径
启动脚本
前端标题
环境变量
二百二十三、普通 IDEA Replace 不一定改目录
例如:
文件内容改了
但是:
文件夹还是 ruoyi-xxx
二百二十四、也可能误改不该改的内容
例如:
网址
第三方配置
历史注释
数据库字段值
二百二十五、修改器的价值
批量完成机械替换
减少:
人工漏改
二百二十六、但是修改器不是魔法
当前公开的 RuoYi-MT 工具:
最主要版本发布于较早时期
而当前若依:
3.6.8
Boot3/Boot4
Nacos3
项目结构已经继续变化。
二百二十七、所以正确态度
修改器:
= 批量替换助手
不是:
= 100% 正确迁移器
二百二十八、使用修改器前必须做什么
第一:
原版项目跑通
二百二十九、第二
Git commit
二百三十、第三
复制一份项目
例如:
RuoYi-Cloud-original
RuoYi-Cloud-custom
二百三十一、不要直接改唯一原版
这是:
最重要保护措施
二百三十二、修改器使用前关闭 IDEA
为什么:
IDEA 文件索引和自动重构
可能和外部批量修改:
同时操作
导致混乱。
二百三十三、修改器官方扩展提示
工具说明曾建议:
Windows 尽量避免在 C 盘权限受限位置运行
或:
必要时使用合适权限
二百三十四、为什么
批量:
改目录
改文件
重命名
需要:
文件写权限
二百三十五、最安全目录
例如:
D:\Projects\RuoYi-Cloud-custom
二百三十六、修改第一项:包名
原:
com.ruoyi
目标例如:
com.zhitu
二百三十七、包名怎么选
通常:
反向域名
例如公司域名:
example.com
包名:
com.example
二百三十八、毕设项目
没有真实域名也可以:
com.zhitu
com.nuo
com.project
但:
项目内保持统一
二百三十九、不要频繁改包名
一旦业务大量开发后:
再全局重命名
风险更高。
二百四十、所以改名时机
原版基线跑通后
↓
正式业务开发前
最好。
二百四十一、修改第二项:项目名
原:
ruoyi
例如改:
zhitu
二百四十二、项目名会影响
artifactId
module 名
脚本名
Docker 路径
项目显示标题
二百四十三、不要把所有“ruoyi”都理解成同一个概念
有:
Java 包名 com.ruoyi
Maven artifactId ruoyi-xxx
服务名 ruoyi-system
前端标题 RuoYi
数据库名称 ry-cloud
Nacos DataId ruoyi-system-dev.yml
这些:
可以改
也可以部分保留
取决于你想做什么。
二百四十四、第一次学习不建议全部改
建议先:
项目展示名称
+
Java 包名
+
业务模块
再考虑:
所有基础设施命名
二百四十五、为什么
改得越彻底:
需要同步修改的地方越多
二百四十六、修改第三项:站点名称
例如:
若依管理系统
改:
智途 AI 旅行管理平台
二百四十七、这类修改风险相对低
通常:
前端 title
Logo 文案
配置参数
二百四十八、但不要只改 index.html
当前 Vue3:
标题可能来自环境配置/系统配置
需要:
全局搜索
二百四十九、修改第四项:数据库/Redis 等配置
RuoYi-MT 历史说明支持:
部分连接配置替换
二百五十、当前若依 Cloud 为什么要更谨慎
因为很多配置:
存在 Nacos SQL / DataId
不一定只在:
本地 YAML
二百五十一、所以修改器运行后
必须检查:
sql 目录
特别:
Nacos 配置初始化 SQL
二百五十二、修改器历史说明也明确提到
RuoYi-Cloud 改完后:
可重新导入修改后的 ry_config SQL
因为:
配置内容也可能被替换
二百五十三、当前项目更要先备份数据库
如果你已经:
有自己的业务数据
不要:
随便重新导入覆盖
二百五十四、学习阶段
最简单:
使用新数据库
重新初始化。
二百五十五、修改器运行后第一件事
不是:
马上启动
而是:
git status
二百五十六、第二
git diff --stat
看:
改了多少文件
二百五十七、第三
git diff
抽查:
pom
配置
启动类
关键 Common
二百五十八、为什么要 diff
批量工具可能:
误改
漏改
Git:
让所有变化可见
二百五十九、修改后全局搜索旧包名
IDEA:
Ctrl + Shift + F
搜索:
com.ruoyi
二百六十、理想状态
如果你目标是彻底改包名:
不应残留业务 Java 引用
二百六十一、但不要看到任意 ruoyi 字符就全删
例如:
原项目 License
官方链接
说明文档
是否保留:
取决于许可和说明需求
二百六十二、一定尊重开源许可证
改项目名:
不等于可以删除许可证义务
二百六十三、第二个全局搜索
ruoyi-
检查:
Maven 模块
服务名
DataId
Docker
二百六十四、第三个搜索
RuoYi
检查:
类名
启动类
前端标题
日志提示
二百六十五、第四个搜索
ry-
看看:
数据库名
是否需要保留。
二百六十六、包目录必须一致
例如 package:
package com.zhitu.system;
目录最好:
src/main/java/com/zhitu/system
二百六十七、虽然 Java 编译不强制目录完全一致
但标准项目:
必须整理一致
二百六十八、Maven groupId 检查
顶层原:
<groupId>com.ruoyi</groupId>
如果改包名:
是否也计划改 groupId
要统一决定。
二百六十九、groupId 和 Java package 不是必须一样
但通常项目:
保持同一组织语义
更清晰。
二百七十、模块 artifactId 检查
例如:
ruoyi-common-core
如果改成:
zhitu-common-core
所有依赖:
必须同步
二百七十一、为什么这里最容易 Maven 爆红
子模块:
artifactId 已改
但另一个模块:
还依赖旧 artifactId
二百七十二、解决
执行:
mvn clean install -DskipTests
二百七十三、如果提示找不到 com.ruoyi:xxx
说明:
还有旧 Maven 坐标
二百七十四、全局搜索
<groupId>com.ruoyi</groupId>
以及:
<artifactId>ruoyi-
二百七十五、Spring Application 类名检查
例如:
RuoYiGatewayApplication
修改器可能:
不一定按你期待改类名
二百七十六、类名不改能不能运行
通常:
能
因为:
类名不是包名
二百七十七、但是项目品牌化
你可能希望:
ZhiTuGatewayApplication
二百七十八、这种类名重构最好怎么做
推荐 IDEA:
Shift + F6
Rename Refactor。
二百七十九、为什么不要纯文本替换 Java 类名
IDEA Refactor:
会更新引用
更安全。
二百八十、Spring 自动配置文件检查
这是改包名特别容易漏的地方。
现代 Spring Boot 可能使用:
META-INF/spring/
org.springframework.boot.autoconfigure.AutoConfiguration.imports
二百八十一、旧项目还可能有
META-INF/spring.factories
二百八十二、为什么必须搜
里面可能写:
com.ruoyi.xxx.SomeAutoConfiguration
二百八十三、如果包名改了但这里没改
表现:
ClassNotFoundException
或:
某个自动配置完全没加载
二百八十四、RuoYi-MT 历史版本更新中特别提过
曾修复:
RuoYi-Cloud .imports 未修改问题
这正说明:
自动配置 imports 是批量改名高风险点
二百八十五、所以当前 Boot3 更要检查
全局搜索:
com.ruoyi
一定包括:
resources/META-INF
二百八十六、Nacos DataId 检查
原:
ruoyi-gateway-dev.yml
如果服务名改:
zhitu-gateway
你必须决定 DataId:
是否同步改
二百八十七、服务名、DataId、配置加载关系必须保持一致
否则:
服务注册成功
但配置加载失败
二百八十八、为什么这是 Cloud 改名最难的地方
单体改包名:
主要改代码
Cloud:
代码 + 配置中心 + 服务名
必须同步。
二百八十九、Nacos 服务名检查
例如原:
ruoyi-system
如果改:
zhitu-system
所有 Feign:
必须找到新服务名
二百九十、常量里可能存服务名
例如:
ServiceNameConstants
二百九十一、修改器后必须重点检查这个类
因为 Feign:
可能不是直接写字符串
而是引用:
服务名常量
二百九十二、Gateway Route 也要检查
Nacos 中原:
lb://ruoyi-system
如果服务改名:
必须同步
二百九十三、否则
Gateway:
503
二百九十四、Feign 和 Gateway 都依赖服务名
所以改服务名:
影响范围非常大
二百九十五、初学者是否一定要改所有服务名
不一定。
你可以:
保留框架底层 ruoyi-xxx
只新增:
zhitu-travel
自己的业务服务。
二百九十六、这往往更稳
尤其:
毕业设计
时间有限
没有必要为了“看起来完全原创”:
把所有基础设施名字都改掉
二百九十七、真正体现你开发能力的是
业务模块
数据库设计
接口
AI 功能
缓存
检索
微服务治理
不是:
把 ruoyi 六个字母改掉
二百九十八、项目修改的三档方案
方案 A:最稳
保留:
com.ruoyi
ruoyi-gateway
ruoyi-auth
ruoyi-system
只新增:
自己的业务服务
二百九十九、适合
学习
时间紧
课程项目
三百、方案 B:中等改造
改:
前端标题
Logo
业务模块名
新增业务包
保留:
底层若依公共模块
三百零一、这是我更推荐的课程方式
因为:
风险较低
又能:
体现业务项目
三百零二、方案 C:彻底品牌化
改:
com.ruoyi
所有 ruoyi-xxx 模块
服务名
Nacos DataId
Docker
脚本
前端品牌
三百零三、适合
企业二次发行
有充分测试时间
三百零四、不适合
第一次接触若依 Cloud
就直接做。
三百零五、为什么课程仍讲修改器
因为你需要知道:
批量品牌化工具怎么工作
和:
改 Cloud 框架为什么比单体复杂
三百零六、修改器操作顺序建议
Step 1
复制原项目
Step 2
Git 建分支
Step 3
记录目标包名/项目名
Step 4
关闭 IDEA
Step 5
运行修改器
Step 6
选择项目目录
Step 7
配置包名替换
Step 8
配置项目名替换
Step 9
配置标题
Step 10
执行
Step 11
查看工具日志
Step 12
git diff
Step 13
全局搜索旧关键字
Step 14
mvn clean install
Step 15
重新导入 SQL/Nacos 配置
Step 16
逐服务启动
三百零七、不要直接做“修改后全服务启动”
应该:
先 Maven 编译
三百零八、Maven 编译通过后
再:
System
三百零九、System 成功后
再:
Auth
三百一十、再 Gateway
三百一十一、然后前端
这样:
每次只增加一层
三百一十二、修改后 Maven 第一类错误
Could not find artifact
通常:
模块坐标没改全
三百一十三、第二类
package com.ruoyi.xxx does not exist
说明:
Java 引用残留
三百一十四、第三类
ClassNotFoundException
重点:
自动配置 imports/spring.factories
三百一十五、第四类
No qualifying bean
可能:
包扫描范围变了
三百一十六、为什么包扫描会受影响
启动类:
位于根包
Spring Boot 默认:
扫描启动类所在包及子包
三百一十七、如果改包时目录层级乱了
Bean:
可能不再被扫描
三百一十八、第五类
Feign no instances available
重点:
服务名改了
但:
Feign/Gateway/Nacos 没同步
三百一十九、第六类
Could not resolve placeholder
可能:
Nacos DataId 改名后配置没加载
三百二十、第七类
数据库连接失败
如果修改器改过配置:
重新检查 Nacos SQL
三百二十一、第八类
Redis 连接失败
检查:
Host
Port
Password
三百二十二、第九类
前端一直 404
检查:
.env
Vite proxy
Gateway Route
服务名
三百二十三、第十类
登录失败但所有服务都启动
检查链:
Gateway
↓
Auth
↓
RemoteUserService
↓
System
↓
DB
↓
Redis
三百二十四、修改后完整搜索清单
搜索:
com.ruoyi
三百二十五、搜索
ruoyi-
三百二十六、搜索
RuoYi
三百二十七、搜索
ry-cloud
三百二十八、搜索
ry-config
三百二十九、搜索
lb://ruoyi-
三百三十、搜索
ruoyi-system
三百三十一、搜索
ruoyi-auth
三百三十二、搜索
ruoyi-gateway
三百三十三、搜索范围
一定包括:
Java
XML
YAML
properties
SQL
Docker
Shell
Batch
Vue
JSON
META-INF
三百三十四、IDEA 全局搜索快捷键
Ctrl + Shift + F
三百三十五、类/包重构快捷键
Shift + F6
Rename。
三百三十六、查引用
Alt + F7
三百三十七、为什么 IDEA Refactor 和修改器要配合
修改器:
适合大规模机械替换
IDEA:
适合精确 Java 符号重构
三百三十八、不要让 Cursor 直接全局“随便改若依”
AI 批量修改一样:
可能漏隐藏配置
三百三十九、正确给 Cursor 的任务
先分析所有 ruoyi/com.ruoyi 引用
按类别输出
不要修改
三百四十、再分批改
第一批:
Java package
第二批:
Maven module
第三批:
服务名
第四批:
Nacos
第五批:
前端
三百四十一、为什么 AI 也必须分批
一次改:
上千文件
你无法 Review。
三百四十二、代码修改器和代码生成器不是一回事
这一点必须区分。
修改器:
改框架自身名称/包名
代码生成器:
根据数据库表生成 CRUD
三百四十三、RuoYi-Cloud 自带 Gen
就是:
ruoyi-gen
三百四十四、所以不要把两个概念混在一起
RuoYi-MT
→ 改若依框架
ruoyi-gen
→ 生成业务 CRUD
三百四十五、当前课为什么顺便认识 Gen
因为部署完成以后:
你很快就会用它生成业务模块
三百四十六、代码生成基本流程
先建数据库表
↓
启动 ruoyi-gen
↓
系统工具
↓
代码生成
↓
导入表
↓
配置字段
↓
预览
↓
生成
三百四十七、生成内容通常包括
Controller
Service
Mapper
Mapper XML
Domain/Entity
前端 API
Vue 页面
菜单 SQL
三百四十八、为什么不能“生成完直接提交”
因为生成器只能:
生成通用 CRUD 骨架
不知道你的:
复杂业务规则
三百四十九、例如旅行订单
生成器可以生成:
新增
修改
删除
查询
但不知道:
订单什么时候能取消
三百五十、所以生成代码后必须二次开发
加入:
状态机
权限
唯一约束
事务
业务校验
VO/DTO
三百五十一、这和你前面淘车湾项目一致
不能:
Controller 直接万能 CRUD
三百五十二、代码生成前数据库表要设计好
因为生成器:
读取数据库字段和注释
三百五十三、表字段注释很重要
例如:
status char(1) comment '状态(0正常 1停用)'
可以帮助:
生成字段说明
三百五十四、字典字段
生成器可以结合:
系统字典
生成下拉/标签。
三百五十五、代码生成不是 AI
它是:
模板引擎
若依项目中使用:
Velocity
三百五十六、为什么生成很稳定
同一个模板:
输入同样表结构
输出:
可预测
三百五十七、AI 和代码生成器可以配合
代码生成器:
搭 CRUD 骨架
Cursor:
分析业务规则并二次开发
三百五十八、这是后面项目非常高效的工作流
数据库设计
↓
若依 Gen
↓
生成基础 CRUD
↓
Cursor 阅读生成代码
↓
添加业务逻辑
↓
人工 Review
三百五十九、不要让 AI 先生成所有 CRUD
若依已经有:
成熟模板
重复造:
没必要
三百六十、什么时候手写页面
复杂页面:
生成器模板不合适
就:
手工 Vue3
后面的智途项目会逐渐实践。
三百六十一、在若依 Cloud 中增加自己的业务应该放哪里
例如下一阶段:
智途 AI 旅行
不要:
把景点、酒店、排行榜
全部塞进 ruoyi-system
三百六十二、为什么
ruoyi-system:
是框架系统管理服务
不是:
你的万能业务模块
三百六十三、推荐新增业务服务
例如:
ruoyi-modules
├─ ruoyi-system
├─ ruoyi-gen
├─ ruoyi-job
├─ ruoyi-file
└─ ruoyi-travel
三百六十四、如果彻底业务品牌化
可以叫:
zhitu-travel
但如果框架基础模块保持若依原名:
ruoyi-travel
也完全可以。
三百六十五、课程推荐
先:
保留若依基础框架命名
新增:
ruoyi-travel
这样:
最稳
三百六十六、ruoyi-travel 应该是什么
一个:
独立 Spring Boot 微服务
拥有:
自己的启动类
自己的 Controller
Service
Mapper
数据库业务表
Nacos 配置
三百六十七、服务名
例如:
spring:
application:
name: ruoyi-travel
三百六十八、端口
例如:
9301
只要:
不与现有服务冲突
三百六十九、为什么端口本身不是前端契约
前端:
只访问 Gateway
所以内部:
9301
属于:
服务部署细节
三百七十、Nacos 注册
新增服务必须:
注册 Nacos
否则 Gateway:
lb://ruoyi-travel
找不到实例。
三百七十一、Gateway 增加路由
例如外部:
/travel/**
转:
lb://ruoyi-travel
三百七十二、具体路径前缀
应:
按当前若依 Gateway Route 规范
不要凭空另起一套。
三百七十三、为什么要跟脚手架规范
前端、Gateway、权限、Swagger:
都已经有统一约定
三百七十四、业务服务需要哪些 common
通常按需求:
core
security
datasource
log
swagger
redis
三百七十五、不要一股脑依赖全部 common
例如服务根本不用:
Seata
就:
暂时不要引入
三百七十六、业务服务是否需要 api 模块
如果:
其他服务要 Feign 调它
可以增加:
ruoyi-api-travel
三百七十七、如果没人远程调用
暂时:
不用为了架构好看创建 api
三百七十八、为什么
过度模块化:
也增加维护成本
三百七十九、以后 AI Service
如果多个服务都要调用 AI:
可以独立:
ruoyi-ai
三百八十、但课程当前
先:
不要提前拆
等后面 AI 功能真正出现:
再决定
三百八十一、哪些若依核心代码尽量不要乱改
第一:
ruoyi-common-core
三百八十二、第二
ruoyi-common-security
三百八十三、第三
Gateway 核心鉴权
三百八十四、第四
Remote Service 公共调用机制
三百八十五、第五
权限注解和数据权限基础设施
三百八十六、为什么
这些属于:
脚手架稳定基础层
随意修改:
可能影响所有业务服务
三百八十七、什么情况下可以改
你已经:
明确理解调用链
并且:
有业务需求
+
有测试
再改。
三百八十八、不要为了“原创率”重写 Security
这会:
增加漏洞风险
三百八十九、毕设/项目应该把精力放哪里
真实业务模型
数据库
AI
缓存
搜索
排行榜
接口
用户体验
三百九十、框架不是你项目的全部
若依只是:
基础设施
三百九十一、如何证明你真正会若依 Cloud
不是说:
“我会下载若依”
而是能解释:
登录从哪走
服务怎么发现
Feign 怎么调用
Gateway 怎么路由
权限怎么传
配置在哪里
业务服务怎么新增
三百九十二、第一次运行常见错误 1:下错分支
表现:
教程代码完全对不上
或者:
Spring Boot 4 API
三百九十三、排查
git branch
三百九十四、你当前应看到
springboot3
三百九十五、常见错误 2:JDK 不是 17
执行:
java -version
三百九十六、再检查 Maven 实际 JDK
mvn -v
三百九十七、为什么两个都要查
IDEA JDK:
17
但 Maven:
可能仍然使用另一个 JAVA_HOME
三百九十八、你以前遇到过类似问题
所以以后固定:
java -version
mvn -v
一起检查。
三百九十九、错误 3:Maven 依赖下载失败
表现:
Could not resolve artifact
四百、检查
网络
Maven settings.xml
镜像
本地仓库
四百零一、不要随便删除整个 .m2
除非:
确认本地缓存真的损坏
四百零二、错误 4:Nacos 连接失败
表现:
get config error
server check fail
connection refused
四百零三、检查
Nacos 是否启动
8848
认证
IP
Namespace
四百零四、Windows 看端口
netstat -ano | findstr 8848
四百零五、错误 5:Nacos 403
重点:
认证
不是:
Java 包名
四百零六、错误 6:Nacos 有服务但配置读取失败
说明:
Discovery 和 Config 是两条链
四百零七、检查
配置 DataId
Group
Namespace
配置内容
四百零八、错误 7:Redis connection refused
确认:
6379
Redis 服务
密码
四百零九、Windows
netstat -ano | findstr 6379
四百一十、错误 8:MySQL access denied
说明:
账号密码错误
四百一十一、错误 9:Unknown database
说明:
数据库还没建/名称不一致
四百一十二、错误 10:Table doesn’t exist
很可能:
SQL 脚本没导入完整
或者:
版本不匹配
四百一十三、错误 11:Mapper XML 解析失败
检查:
XML
typeAlias
跨模块类
MyBatis 配置
四百一十四、如果你自己改过包名
优先检查:
XML 中旧全限定类名
四百一十五、例如
resultType="com.ruoyi.xxx.Xxx"
改包后:
必须同步
四百一十六、错误 12:Feign 找不到服务
表现:
No instances available
四百一十七、查
Nacos 服务列表
service name
Namespace
四百一十八、如果刚用修改器改服务名
优先查:
ServiceNameConstants
@FeignClient
Gateway Route
四百一十九、错误 13:Gateway 503
大概率:
目标服务无可用实例
四百二十、错误 14:Gateway 404
查:
Route
Path
StripPrefix/Rewrite
Controller
四百二十一、错误 15:登录返回 401
先查:
Auth
账号密码
Token
Redis
四百二十二、错误 16:提示登录状态过期
可能:
Redis 登录 Key 不存在
四百二十三、错误 17:提示没有权限
不要马上改代码。
先查:
用户角色
角色菜单
权限标识
后台权限字符串
四百二十四、为什么
若依权限是:
配置 + 代码
必须一致。
四百二十五、错误 18:前端菜单看不到
可能:
权限
菜单配置
动态路由
四百二十六、错误 19:前端接口一直走错地址
查:
.env.development
Vite Proxy
baseURL
四百二十七、错误 20:修改器后 Maven 模块消失
检查:
父 pom modules
和:
真实文件夹名
是否一致。
四百二十八、错误 21:包名改了但 Spring Bean 找不到
查:
启动类包位置
@ComponentScan
@MapperScan
@EnableFeignClients
四百二十九、错误 22:AutoConfiguration 不加载
重点:
META-INF/spring/*.imports
spring.factories
四百三十、错误 23:Nacos 配置名称仍是旧项目名
表现:
服务启动但大量 placeholder 缺失
四百三十一、错误 24:Gateway 路由还指向旧 serviceName
表现:
503
四百三十二、错误 25:Docker 修改后路径报错
查:
docker-compose.yml
build context
Dockerfile
volume path
container name
四百三十三、为什么 Docker 是修改器高风险区
因为:
文件夹名
一改:
build context 也要改
四百三十四、错误 26:脚本启动找不到 jar
查:
bin/*.sh
*.bat
里面:
旧 artifact 名
四百三十五、错误 27:前端标题还是若依
查:
.env
index.html
系统参数
Layout
Logo 组件
四百三十六、错误 28:浏览器 Logo 还是旧的
静态资源:
public
src/assets
单独替换。
四百三十七、错误 29:修改器日志有错误
不要立即认为:
整个项目失败
工具自身说明也提到:
某些文件替换失败需要人工检查
四百三十八、真正判断标准
Git Diff
+
全局搜索
+
Maven Build
+
逐模块运行
四百三十九、错误 30:改名后数据库 SQL 仍有旧配置
尤其:
ry_config SQL
重新检查:
Nacos DataId
服务名
数据库 URL
Redis
四百四十、修改器验证矩阵
修改完成后按顺序:
Maven
↓
System
↓
Auth
↓
Gateway
↓
Vue
↓
Gen
四百四十一、第一阶段:静态验证
git diff
Ctrl+Shift+F
四百四十二、第二阶段:编译验证
mvn clean install -DskipTests
四百四十三、第三阶段:基础设施验证
MySQL
Redis
Nacos
四百四十四、第四阶段:服务验证
System
Auth
Gateway
四百四十五、第五阶段:端到端验证
前端登录
四百四十六、第六阶段:业务验证
用户列表
菜单
字典
代码生成
四百四十七、如果任何阶段失败
不要:
继续下一阶段
先:
把当前层修好
四百四十八、这叫分层排错
四百四十九、本地端口表
可以自己做:
Nacos 8848
Gateway 8080
Auth 9200
System 9201
Gen 9202
Job 9203
File 9300
Monitor 9100
Redis 6379
MySQL 3306
四百五十、为什么要维护端口表
微服务多以后:
端口冲突非常常见
四百五十一、IDEA Run Configuration 命名
RuoYi-Gateway-8080
RuoYi-Auth-9200
RuoYi-System-9201
四百五十二、Services 窗口
IDEA:
View
→ Tool Windows
→ Services
统一看:
多个 Spring Boot
四百五十三、控制台不要混看
每次报错先确认:
这是 Gateway 日志?
Auth 日志?
System 日志?
四百五十四、一个请求怎么找对应日志
例如用户列表:
前端
↓
Gateway
↓
System
主要业务异常:
System
四百五十五、登录:
Gateway
↓
Auth
↓
System
三个:
都可能有日志
四百五十六、为什么 TraceId 很有价值
以后请求跨服务:
搜索同一个 TraceId
就能:
串起调用链
四百五十七、若依 Cloud 更新策略
如果你直接修改:
框架核心几百处
以后同步官方:
非常痛苦
四百五十八、所以企业二开建议
尽量:
新增
>
修改
四百五十九、例如业务功能
新增:
ruoyi-travel
比:
把 travel 写进 ruoyi-system
更利于维护。
四百六十、公共能力也不要一上来改 core
先问:
能不能在自己的 common 扩展模块实现
四百六十一、例如
ruoyi-common-ai
未来有必要:
再新增
四百六十二、不要为了一个工具类就新建 common-ai
仍然:
按真实复用价值决定
四百六十三、若依升级时怎么减少冲突
核心思路:
减少对官方基础模块的侵入式修改
四百六十四、Git Remote 策略
可以保留:
upstream
指向若依官方。
自己的:
origin
指向自己的仓库。
四百六十五、例如
git remote -v
四百六十六、同步官方更新时
先:
看 changelog
不要:
直接 merge 后祈祷
四百六十七、为什么 changelog 很重要
例如当前 3.6.8:
升级 Boot/Cloud
代码生成 TypeScript 支持
安全/功能优化
这些可能:
影响你的二次开发
四百六十八、当前 3.6.8 一个明显事实
默认 master:
已经切 Spring Boot 4
四百六十九、但 springboot3 继续维护
这对你非常友好:
可以继续用 JDK17 + Boot3
四百七十、不要误解为 Boot3 已经不能用
官方:
仍然并行维护 springboot3
四百七十一、代码修改器安全清单
运行前:
[ ] 原版能启动
[ ] 当前分支正确
[ ] Git 工作区干净
[ ] 已创建备份/分支
[ ] 已记录原包名
[ ] 已记录目标包名
[ ] 已记录原项目名
[ ] 已记录目标项目名
[ ] IDEA 已关闭
四百七十二、运行后:
[ ] git status
[ ] git diff
[ ] 搜 com.ruoyi
[ ] 搜 ruoyi-
[ ] 搜 RuoYi
[ ] 检查 pom
[ ] 检查 META-INF
[ ] 检查 Nacos SQL
[ ] 检查 ServiceNameConstants
[ ] 检查 Feign
[ ] 检查 Gateway Routes
[ ] 检查 Docker
[ ] 检查脚本
[ ] 检查前端 env
四百七十三、构建后:
[ ] mvn clean install
[ ] MySQL 正常
[ ] Redis 正常
[ ] Nacos 正常
[ ] System 正常
[ ] Auth 正常
[ ] Gateway 正常
[ ] Vue 登录成功
四百七十四、为什么清单这么长
Cloud 项目:
不是单个 Java 工程
而是:
代码
+
服务名
+
配置中心
+
数据库
+
前端
+
Docker
+
脚本
四百七十五、Cursor 提示词:先读若依 Cloud
请先阅读当前 RuoYi-Cloud 项目,不修改任何代码。
当前分支必须是 springboot3。
请输出:
1. 顶层 Maven 模块
2. 每个可运行服务及端口
3. ruoyi-gateway 职责
4. ruoyi-auth 职责
5. ruoyi-system 职责
6. ruoyi-api 的 Feign 契约
7. ruoyi-common 每个子模块作用
8. Nacos 配置从哪里读取
9. Redis 在登录中的作用
10. 登录完整调用链
禁止先重构。
四百七十六、Cursor 提示词:部署检查
我要在 Windows + IDEA + JDK17 环境运行 RuoYi-Cloud springboot3。
请按顺序检查:
1. git branch
2. java -version
3. mvn -v
4. MySQL
5. Redis
6. Nacos 3.x
7. 当前分支 sql 目录
8. Nacos 配置 SQL
9. ruoyi-system
10. ruoyi-auth
11. ruoyi-gateway
每一步给出“成功判据”。
不要一次让我启动所有可选模块。
四百七十七、Cursor 提示词:登录链追踪
请从前端登录按钮开始追踪 RuoYi-Cloud 登录链。
按调用顺序列出:
Vue API
→ Gateway Route/Filter
→ ruoyi-auth Controller
→ 登录 Service
→ RemoteUserService
→ ruoyi-system
→ Redis
→ Token 返回
每一步给出:
类名
方法
服务名
输入
输出
只分析,不修改。
四百七十八、Cursor 提示词:Feign 关系
请扫描当前 RuoYi-Cloud springboot3 中所有主要 @FeignClient。
输出:
1. Feign 接口
2. 所在 ruoyi-api 子模块
3. 目标 serviceName
4. 哪些业务服务调用
5. fallback/fallbackFactory
6. 对应 Provider Controller
目的是画出服务依赖图。
四百七十九、Cursor 提示词:包名修改前审计
我准备把 com.ruoyi 改为 com.zhitu。
现在不要修改。
请全项目搜索并分类所有 com.ruoyi 引用:
1. Java package/import
2. pom groupId
3. XML resultType/typeAlias
4. META-INF/spring/*.imports
5. spring.factories
6. YAML/properties
7. SQL
8. Docker
9. Shell/Batch
10. Vue/JSON
输出风险清单和数量。
四百八十、Cursor 提示词:修改器后审计
我刚用若依框架修改器完成批量替换。
请不要继续批量修改。
先审计:
1. git diff
2. 残留 com.ruoyi
3. 残留旧 artifactId
4. 父 pom modules 与真实目录
5. ServiceNameConstants
6. @FeignClient
7. Gateway lb://
8. Nacos DataId
9. META-INF AutoConfiguration.imports
10. spring.factories
11. Docker build context
12. 前端 env/title
输出“必须修”“建议修”“可保留”三类。
四百八十一、Cursor 提示词:Maven 改名错误
修改若依项目名后 Maven 构建失败。
请根据实际错误和 dependency tree 检查:
1. parent 坐标
2. groupId
3. artifactId
4. modules
5. 子模块 dependency
6. dependencyManagement
7. 是否还有 com.ruoyi:ruoyi-* 坐标
不要直接修改版本号。
四百八十二、Cursor 提示词:新增 Travel 微服务
请基于当前 RuoYi-Cloud springboot3 新增一个最小业务服务 ruoyi-travel。
要求:
1. 放在 ruoyi-modules
2. 父 pom 正确聚合
3. 使用现有 common 模块,不重写框架
4. 注册 Nacos
5. 独立端口
6. 独立 Nacos 配置 DataId
7. Gateway 增加 lb://ruoyi-travel Route
8. 创建一个 /travel/health 测试接口
9. 暂时不要加数据库业务
10. 给出逐层验证步骤
四百八十三、Cursor 提示词:框架侵入审查
请审查我的二次开发是否过度修改若依核心。
统计我对以下模块的改动:
ruoyi-common-core
ruoyi-common-security
ruoyi-gateway
ruoyi-auth
ruoyi-system
判断哪些业务代码应该迁移到:
新的 ruoyi-modules 业务服务
或独立扩展 common 模块。
目标:
减少未来同步若依官方更新时的冲突。
四百八十四、Cursor 提示词:前端联调
当前后端 Gateway 8080,
前端使用 RuoYi-Cloud-Vue3。
请检查:
1. .env.development
2. API base URL
3. Vite proxy
4. 登录 URL
5. Network 实际 Request URL
6. Gateway 是否收到
7. CORS 是否重复配置
不要让前端直接访问 ruoyi-system:9201。
四百八十五、Cursor 提示词:部署故障树
若依 Cloud 登录失败。
请按状态码建立故障树:
无法连接
→ Gateway 是否启动
404
→ 前端路径/Gateway Route
503
→ Nacos/目标实例
401
→ Auth/Token/Redis
500
→ Auth/System/数据库业务异常
每一种都列:
应该看哪个服务日志
应该检查哪个配置
禁止无依据重装环境。
四百八十六、面试题 1:RuoYi-Cloud 和 RuoYi-Vue 区别
答:
RuoYi-Vue 是前后端分离的 Spring Boot 单体后端,
主要业务模块运行在同一个应用中。
RuoYi-Cloud 是基于 Spring Cloud & Alibaba 的微服务版本,
将 Gateway、认证中心、系统服务、文件、代码生成等能力
拆分为多个服务,并使用 Nacos、Feign、Sentinel、Redis 等组件治理。
四百八十七、面试题 2:RuoYi-Cloud 中 Gateway 做什么
答:
ruoyi-gateway 是外部统一入口。
它负责路由到内部服务,并承担白名单、
基础鉴权、安全 Header、异常处理以及入口流量治理等横切能力。
业务 CRUD 不应该集中写在 Gateway。
四百八十八、面试题 3:ruoyi-auth 为什么独立
答:
ruoyi-auth 是认证中心,
负责登录校验、Token 和登录状态相关逻辑。
它通过远程接口获取 system 服务中的用户、角色和权限信息,
从而使认证职责与系统业务数据职责分离。
四百八十九、面试题 4:ruoyi-api 是什么
答:
ruoyi-api 主要承载微服务之间的远程接口契约。
其中可以定义 Feign Client、远程 DTO 和服务调用常量。
它不是一个独立启动的业务服务,
而是供 Consumer 和 Provider 共享接口契约的 Maven 模块。
四百九十、面试题 5:ruoyi-common 是什么
答:
ruoyi-common 是若依 Cloud 的通用基础依赖集合。
其中按职责拆分 core、security、redis、datascope、
datasource、log、seata、sensitive、swagger 等模块。
业务微服务按需要引用它们,
从而复用框架基础能力。
四百九十一、面试题 6:Nacos 在若依 Cloud 中做什么
答:
Nacos 同时承担服务注册发现和集中配置管理。
Gateway、Auth、System 等服务启动后注册到 Nacos,
服务间可以通过服务名动态发现实例。
同时数据库、Redis、Gateway 路由等公共或服务配置
也可以从 Nacos Config 加载。
四百九十二、面试题 7:Redis 在登录流程中做什么
答:
Redis 用于保存登录会话和 Token 对应的用户状态等缓存数据。
Gateway 收到请求后,可以结合 Token 和 Redis 中的登录状态
判断用户是否仍然有效。
因此 Redis 异常可能直接影响登录和鉴权链路。
四百九十三、面试题 8:若依 Cloud 登录链路怎么走
答:
前端登录请求先进入 Gateway,
再路由到 ruoyi-auth。
Auth 通过 RemoteUserService 调用 ruoyi-system 获取用户信息,
校验登录后创建 Token/登录状态并保存到 Redis,
最后将 Token 返回前端。
后续请求由 Gateway 检查 Token 和登录状态后再转发业务服务。
四百九十四、面试题 9:为什么不能把业务都写 ruoyi-system
答:
ruoyi-system 的职责是用户、角色、菜单、部门、字典等系统管理能力。
自己的旅行、电商或工单业务应该建立独立业务微服务,
避免 system 演变成新的超级单体。
这也有利于独立部署、扩容和后续维护。
四百九十五、面试题 10:为什么修改包名前要先跑通原版
答:
原版跑通可以建立一个可运行基线。
如果下载后立刻批量修改数百个文件再出现故障,
很难判断问题来自环境、原框架还是修改操作。
先建立基线,再通过 Git diff 审查修改,
能显著降低排错难度。
四百九十六、面试题 11:若依修改器主要修改什么
答:
若依框架修改器主要用于批量替换项目包名、
项目名、模块名称、POM、站点标题和部分配置或脚本。
它解决的是框架品牌化和机械重命名问题,
与根据数据库表生成 CRUD 的代码生成器不是同一种工具。
四百九十七、面试题 12:为什么不能完全相信修改器
答:
批量修改器只能根据预设规则处理已知文件结构。
若依 Cloud 会持续升级,
Boot 3/4、自动配置 imports、Nacos DataId、
Docker 和前端结构都可能发生变化。
因此修改器应该作为辅助工具,
运行后仍必须通过 Git diff、全局搜索、Maven 构建和逐模块启动验证。
四百九十八、面试题 13:改服务名为什么比改 Java 包名危险
答:
服务名不仅存在于 Java 代码,
还可能被 Nacos 注册、Feign Client、
ServiceNameConstants、Gateway lb:// Route
以及配置中心 DataId 引用。
任意一处漏改都会导致服务发现或配置加载失败,
因此服务名属于分布式系统契约的一部分。
四百九十九、面试题 14:为什么检查 META-INF/spring/*.imports
答:
Spring Boot 自动配置类可能通过
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
进行注册。
包名批量修改后如果这些全限定类名仍然是旧 com.ruoyi,
可能产生 ClassNotFoundException 或自动配置不加载。
所以它是改包名后的重点检查位置。
五百、面试题 15:代码修改器和 ruoyi-gen 区别
答:
代码修改器针对的是若依框架本身的包名、项目名和品牌等批量重命名。
ruoyi-gen 是代码生成服务,
根据数据库表结构通过模板生成 Controller、
Service、Mapper、XML、前端页面和菜单 SQL 等 CRUD 骨架。
一个是改框架,一个是生成业务代码。
五百零一、面试题 16:为什么代码生成后还要二次开发
答:
代码生成器只知道数据库表结构和模板,
不知道具体业务规则。
订单状态流转、重复提交、权限、事务、
金额计算、复杂校验等仍然需要开发人员设计和实现。
所以生成器适合减少机械 CRUD,
不能替代业务建模。
五百零二、面试题 17:RuoYi-Cloud 为什么适合学习微服务
答:
它把 Gateway、Nacos、Feign、Sentinel、
Redis、认证、远程接口等常见微服务组件组织在完整项目中。
学习者可以从真实调用链理解组件如何协作,
而不是只看孤立 Demo。
五百零三、面试题 18:为什么业务服务应尽量少改框架核心
答:
官方框架核心会持续升级。
如果自己的业务大量侵入 common、auth、gateway 等基础模块,
未来同步官方安全修复和版本升级时会产生大量冲突。
因此更推荐新增业务模块,
以扩展方式复用框架基础能力。
五百零四、面试题 19:springboot3 分支为什么重要
答:
当前 RuoYi-Cloud 默认 master 已经采用 Spring Boot 4.x。
如果项目主线仍然是 JDK17 + Spring Boot 3,
应该切换官方 springboot3 分支。
选错分支会导致课程依赖、API 和配置方式与代码不匹配。
五百零五、面试题 20:部署若依 Cloud 最好的排错方式
答:
采用分层验证。
先验证 MySQL、Redis、Nacos,
再逐个验证 System、Auth、Gateway,
最后验证 Vue 端到端登录。
根据 404、401、503、500 等状态码
定位 Gateway、认证、服务发现或业务服务,
而不是一次性修改所有组件。
五百零六、本章知识树
RuoYi-Cloud
│
├─ Version
│ ├─ master → Boot 4
│ ├─ springboot3 → Boot 3
│ ├─ JDK17
│ └─ v3.6.8
│
├─ Infrastructure
│ ├─ MySQL
│ ├─ Redis
│ ├─ Nacos
│ ├─ Sentinel
│ └─ Seata
│
├─ Runtime Services
│ ├─ ruoyi-gateway
│ ├─ ruoyi-auth
│ ├─ ruoyi-system
│ ├─ ruoyi-gen
│ ├─ ruoyi-job
│ ├─ ruoyi-file
│ └─ ruoyi-monitor
│
├─ API
│ └─ ruoyi-api-system
│ ├─ Feign
│ └─ Remote DTO
│
├─ Common
│ ├─ core
│ ├─ security
│ ├─ redis
│ ├─ datascope
│ ├─ datasource
│ ├─ log
│ ├─ seata
│ ├─ sensitive
│ └─ swagger
│
├─ Login Flow
│ ├─ Vue
│ ├─ Gateway
│ ├─ Auth
│ ├─ Feign
│ ├─ System
│ └─ Redis
│
├─ Frontend
│ ├─ Vue3
│ ├─ Vite
│ ├─ Element Plus
│ ├─ Pinia
│ └─ Gateway Proxy
│
├─ Modifier
│ ├─ Package
│ ├─ Project Name
│ ├─ Maven
│ ├─ Service Name
│ ├─ Nacos DataId
│ ├─ Docker
│ ├─ Script
│ ├─ Vue
│ └─ META-INF
│
├─ Generator
│ ├─ DB Table
│ ├─ Velocity
│ ├─ Java
│ ├─ XML
│ ├─ Vue
│ └─ SQL
│
└─ Custom Service
├─ ruoyi-travel
├─ Nacos
├─ Gateway Route
├─ Common Dependencies
└─ Optional API Module
五百零七、前五课终于完整串起来了
第 1 课
系统为什么需要微服务
↓
第 2 课
Nacos 找服务
Feign 调服务
↓
第 3 课
Sentinel 保护服务
↓
第 4 课
Gateway 统一入口
↓
第 5 课
RuoYi-Cloud
把上面全部组装起来
五百零八、若依 Cloud 完整调用图
Vue3
│
▼
ruoyi-gateway
/ \
/ \
▼ ▼
ruoyi-auth ruoyi-system
│ ▲
│ Feign │
└───────────────────┘
RemoteUser
│
▼
Redis
所有运行服务
│
▼
Nacos
注册中心 + 配置中心
入口/资源稳定性
│
▼
Sentinel
五百零九、以后自己的业务
Vue
↓
Gateway
↓
ruoyi-travel
├─ MySQL
├─ Redis
├─ ES
├─ OSS
└─ AI
如果要系统用户:
ruoyi-travel
↓ Feign
ruoyi-system
五百一十、本章最重要的 30 条原则
1. 当前默认 master 是 Boot4,Boot3 学习必须切 springboot3
2. 下载代码后第一件事是确认 Git 分支
3. 当前 Boot3 分支使用 JDK17+
4. 当前版本 SQL 必须配当前版本代码
5. Nacos、Redis、MySQL 是核心基础设施
6. 第一次只启动 Gateway/Auth/System 核心服务
7. 不要一次启动所有可选模块
8. ruoyi-gateway 是统一入口
9. ruoyi-auth 是认证中心
10. ruoyi-system 是系统管理服务
11. ruoyi-api 是远程接口契约,不是运行服务
12. ruoyi-common 是公共依赖集合
13. Nacos 同时承担注册发现和配置管理
14. Redis 对登录状态非常重要
15. 登录主链一定要会画
16. 前端 Cloud 版和普通单体 Vue3 版不要下载错
17. 业务不要全部写进 ruoyi-system
18. 新业务优先新建 ruoyi-modules 服务
19. 不要为了“原创”乱改 Security 核心
20. 原版先跑通再做二次修改
21. 批量修改前必须 Git 提交和备份
22. 修改器只是助手,不是 100% 迁移保证
23. 改服务名比改 Java 包名影响更广
24. 改包名必须检查 META-INF 自动配置
25. Cloud 改名必须检查 Nacos DataId
26. Cloud 改名必须检查 Feign 与 Gateway Route
27. 修改后先 mvn build,再逐模块启动
28. 修改器和 ruoyi-gen 完全不是一回事
29. Gen 生成的是 CRUD 骨架,不是完整业务
30. 二次开发应尽量新增业务模块,降低对官方核心侵入
五百一十一、本章最终验收
学完这一章,你应该能够独立完成:
1. 区分 RuoYi / RuoYi-Vue / RuoYi-Cloud
2. 找到官方 RuoYi-Cloud 仓库
3. 切换 springboot3 分支
4. 验证 java -version
5. 验证 mvn -v
6. 看懂顶层 pom
7. 看懂 ruoyi-gateway
8. 看懂 ruoyi-auth
9. 看懂 ruoyi-system
10. 看懂 ruoyi-api
11. 看懂 ruoyi-common
12. 理解 ruoyi-gen
13. 理解 ruoyi-job
14. 理解 ruoyi-file
15. 理解 monitor
16. 初始化当前版本 MySQL SQL
17. 初始化当前版本 Nacos 配置
18. 启动 Redis
19. 启动 Nacos
20. 启动 System
21. 启动 Auth
22. 启动 Gateway
23. 在 Nacos 看见服务
24. 启动 Cloud Vue3 前端
25. 完成端到端登录
26. 画出登录调用链
27. 找到 RemoteUserService
28. 理解 Feign 如何连接 System
29. 理解 Gateway 如何鉴权
30. 理解 Redis 登录状态
31. 使用若依框架修改器前建立基线
32. 用 Git Diff 审计修改
33. 全局搜索旧包名
34. 检查 Maven 坐标
35. 检查 META-INF imports
36. 检查 ServiceNameConstants
37. 检查 Feign serviceName
38. 检查 Gateway lb://
39. 检查 Nacos DataId
40. 检查 Docker 路径
41. 检查 Shell/Batch
42. 检查前端标题/env
43. 修改后 Maven 构建
44. 修改后逐服务启动
45. 区分代码修改器和代码生成器
46. 使用 ruoyi-gen 生成 CRUD 骨架
47. 知道生成代码需要二次开发
48. 知道新业务应放独立业务服务
49. 创建最小 ruoyi-travel 思路
50. 根据 401/404/503/500 分层定位故障
五百一十二、你现在最应该做的一次实践
从空目录开始:
D:\Java\RuoYiCloudPractice
第一步:
git clone https://gitee.com/y_project/RuoYi-Cloud.git
五百一十三、第二步
cd RuoYi-Cloud
git checkout springboot3
git branch
五百一十四、第三步
java -version
mvn -v
确保:
JDK17
五百一十五、第四步
打开:
sql
只使用:
当前分支提供的 SQL
五百一十六、第五步
准备:
MySQL
Redis
Nacos3
五百一十七、第六步
逐个启动:
System
Auth
Gateway
五百一十八、第七步
Nacos Console 确认:
ruoyi-system
ruoyi-auth
ruoyi-gateway
五百一十九、第八步
再下载:
RuoYi-Cloud-Vue3
启动前端。
五百二十、第九步
完成:
登录
五百二十一、第十步
不要改任何代码,
先在 IDEA:
Ctrl + Shift + F
搜索:
RemoteUserService
五百二十二、然后跟完整登录链
这一步:
比背 100 个类名更有用
五百二十三、第十一步
创建 Git:
customize
分支。
五百二十四、第十二步
复制项目:
custom
版本。
五百二十五、第十三步
再练:
包名修改器
不要在原版:
直接练
五百二十六、实践完成标准
你必须同时做到:
原版能跑
修改版也能跑
这样你才能真正知道:
修改器影响了什么
五百二十七、下一课
按照课程表,下一篇正式进入项目:
《智途 AI 旅行微服务实战(一):数据库设计与短信验证》
下一课会从:
“我们到底要做一个什么旅行系统?”
开始。
五百二十八、下一课会做什么
第一:
分析智途 AI 旅行平台核心业务
五百二十九、确定微服务边界
例如:
系统服务
旅行内容服务
用户业务
AI 能力
但不会:
为了微服务而过度拆分
五百三十、设计数据库
会涉及:
地区
景点
分类
用户旅行数据
验证码
并为后面:
多级菜单
网站导航
排行榜
OSS
搜索
AI 推荐
提前设计合适的数据结构。
五百三十一、短信验证码完整流程
用户输入手机号
↓
Gateway
↓
发送验证码接口
↓
校验手机号格式
↓
防刷
↓
生成验证码
↓
发送短信
↓
Redis 保存
↓
设置 TTL
↓
用户提交验证码
↓
Redis 校验
↓
一次性消费/失效
五百三十二、会重点讲安全
包括:
60 秒发送间隔
单手机号频控
单 IP 频控
验证码过期
验证码错误次数
Redis Key 设计
不能把验证码返回前端
短信 SDK 失败处理
重复提交
幂等
五百三十三、为什么这一课开始真正像企业项目
前五课:
主要学习微服务基础设施
下一课:
开始把基础设施用于真实业务
五百三十四、最终路线
RuoYi-Cloud
↓
新增智途业务模块
↓
数据库
↓
短信验证码
↓
多级菜单
↓
导航
↓
OSS
↓
排行榜
↓
缓存
↓
ES
↓
AI
↓
MQ
五百三十五、本章一句话总结
若依 Cloud 不是一个需要你重新发明的框架,
而是一套已经把微服务基础设施组装好的脚手架。
你真正需要学会的是:
先跑通,
再看懂,
再扩展,
最后才修改框架本身。
五百三十六、最值得背下来的部署口诀
先分支
再环境
先基础设施
再核心服务
先原版跑通
再修改名字
先 Git Diff
再修残留
先业务扩展
少碰框架核心