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

相关推荐
YGGP2 小时前
吃透 Golang 基础:数据结构之 Map
开发语言·数据结构·golang
march of Time3 小时前
go工具库:hertz api框架 hertz client的使用
开发语言·golang·iphone
余厌厌厌4 小时前
go语言学习 第9章:映射(Map)
服务器·学习·golang
roman_日积跬步-终至千里4 小时前
【Go语言基础【15】】数组:固定长度的连续存储结构
golang
cccc来财5 小时前
Go中的协程并发和并发panic处理
开发语言·后端·golang
roman_日积跬步-终至千里19 小时前
【Go语言基础【9】】字符串格式化与输入处理
golang
比特森林探险记1 天前
Go 中的 Map 与字符处理指南
c++·算法·golang
比特森林探险记1 天前
Go 中 map 的双值检测写法详解
java·前端·golang
哆啦A梦15881 天前
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/[email protected] 更换为 go-ansible/@v1.1.7
开发语言·golang·ansible
LanLance1 天前
ES101系列09 | 运维、监控与性能优化
java·运维·后端·elasticsearch·云原生·性能优化·golang