gin框架传入的gin.context参数是池化的

  1. gin.context参数不但是池化的,而且是指针

  2. 但是gin.context又实现了context的接口。因此,可以当作context去使用

  3. 这就会导致一个很严重的问题:

  4. 池化导致了复用后的ctx将会将之前使用的ctx中的内容进行覆盖。

  5. 实现了context接口,导致context.withvalue(*gin.context,key,value).并不会有编译错误

具体我在解决问题时,采用register的方式,将全部的http请求注册到统一入口处。统一入口,将*gin.Context转化为context.Background(),调用controller。将context作为参数传递,而不再使用*gin.Context作为参数

相关推荐
敢敢のwings16 小时前
智元 GO-2 与 AgiBot-World 深度解读
开发语言·后端·golang
FfHUCisI16 小时前
Golang 数据库连接池深度调优
android·数据库·golang
程序员小八77717 小时前
Java 快速转 Go
java·python·golang
名字还没想好☜20 小时前
Go 用 slices/maps 标准库泛型函数:告别手写 Contains、Sort、去重(Go 1.21)
开发语言·后端·算法·golang·go
ylj_dev1 天前
从 0 构建 AI Workload Platform(五):Agent Runtime、工具权限与自然语言工作流
golang·工作流·ai agent·大模型应用开发·agent runtime
灯澜忆梦1 天前
【基于GO的Web开发9】gin框架返回json
前端·后端·golang·gin
FfHUCisI1 天前
Golang SSA 中间表示与优化 Pass
开发语言·后端·golang
JavaPub-rodert2 天前
王仕宇在 Go Context 如何解决协程泄漏与超时控制
开发语言·后端·golang·iphone·javapub·王仕宇
QX_hao2 天前
【Go】--Cobra-cli的用法
开发语言·后端·golang
圣殿骑士-Khtangc2 天前
Go-Kubernetes-CRD自定义资源开发从零实现Operator模式
golang