以該處理流程去拓展其他功能模塊處理流程,進而熟悉項目開發代碼
一、思路
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/dev-api/code
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
所以前端向后端發送請求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
大模型解釋代碼
代碼功能
這段代碼使用 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中查找驗證碼
輸入驗證碼 -> 登錄流程