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作为参数

相关推荐
FellAveal25 分钟前
【Go语言入门学习笔记】Part13.结构体与接口
笔记·学习·golang
microrain41 分钟前
从设备孤岛到智能协同:SagooIoT场景联动实战解析
物联网·golang·sagooiot
灯澜忆梦5 小时前
GO_网络编程---网络协议
网络·网络协议·golang
William.csj15 小时前
BaiduPCS-Go——下载百度网盘文件的工具
golang·baidupc
kebeiovo18 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
Wang's Blog21 小时前
Go-Zero项目开发9: 微服务治理之服务注册中心
微服务·golang
布朗克1681 天前
Go 入门到精通-27-泛型编程
开发语言·golang·xcode·泛型编程
名字还没想好☜1 天前
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流
开发语言·后端·golang·go·并发
web守墓人1 天前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
看-是灰机1 天前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书