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

相关推荐
茉莉玫瑰花茶5 小时前
GO [ 函数 ]
开发语言·后端·golang
茉莉玫瑰花茶5 小时前
GO [ 类型 ]
开发语言·数据库·golang
茉莉玫瑰花茶6 小时前
GO [ 并发 ]
开发语言·后端·golang
蓝宝石的傻话7 小时前
onvif-go(mickeyzzc/onvif-go v2)完整参考手册:从建工程到写出自己的 NVR 接入
开发语言·后端·golang
茉莉玫瑰花茶10 小时前
GO [ 接口 ]
服务器·数据库·golang
茉莉玫瑰花茶10 小时前
GO [ 文件 ]
服务器·golang
念何架构之路1 天前
go-grpc使用
rpc·golang
小小龙学IT1 天前
Go 泛型(Generics)深度解析:从类型参数到生产实践
开发语言·数据库·golang
不会写DN1 天前
Go日志库工程选型与逃逸分析评测报告
java·服务器·golang