以该处理流程去拓展其他功能模块处理流程,进而熟悉项目开发代码
一、思路
JavaWeb流程主干线:发起请求、处理请求、响应请求

二、登录页面
在登录页面按键F12打开开发者工具,点击network,刷新页面,点击code,查看URL

三、前端
查看前端 代码,找到登录页面
src -> views -> login.vue
data 数据
watch 监听
created 钩子函数 getCode getCodeImg

login.js
函数url /code
request

request.js
service
axios 异步发送请求 baseurl请求前缀

开发环境 env.development
/dev-api

没有localhost,相对请求,前端发出的 localhost:80
前端发送请求
http://localhost:80/dev-api/code
但是后端是8080端口
找网关相关的代码
后端 ruoyi-gateway
nacos ruoyi-gateway-dev.yml

bootstrap.yml 后端8080

回忆 前后端分离 接口处理
vue.config.js
devServer

proxy 代理对象
匹配dev-api,在/dev-api前加上localhost:8080,将/dev-api并替换为空,
具体解析过程:
http://localhost/dev-api/code ->
http://localhost:8080/dev-api/code ->
所以前端向后端发送请求http://localhost:8080/code
四、后端
前端请求进入网关查找对应的微服务,可查看nacos网关配置文件
nacos gateway routes
ruoyi-gateway-dev.yml
不是code开头,不是#代码生成#模块,

code是代码请求
ignore 没有
所以没有进入到gateway下的子服务,只能从ruoyi-gateway中查找
但是ruoyi-gateway 没有controller

特殊情况find in files
/code

RouterFunctionConfiguration
函数式的接口 webflux
大模型解释代码
bash
代码功能
这段代码使用 Spring WebFlux 框架定义了一个路由规则,用于处理 HTTP 请求。它的核心作用是:
当客户端发起特定格式的 GET 请求时,执行指定的处理逻辑(validateCodeHandler)来生成响应
# 匹配 HTTP 请求并将其转发给对应的处理函数
RouterFunctions.route(...)
# 只有当请求是 GET /code 且客户端接受 text/plain 格式时,才会触发后续的处理逻辑
RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN))
# 处理函数
validateCodeHandler
validateCodeHandler

redisservice

uuid
img

逐层返回前端
五、请求闭环
可根据uuid在redis中查找验证码

输入验证码 -> 登录流程