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

相关推荐
creator_Li40 分钟前
Golang的切片Slice
golang·slice
源代码•宸6 小时前
简版抖音项目——项目需求、项目整体设计、Gin 框架使用、视频模块方案设计、用户与鉴权模块方案设计、JWT
经验分享·后端·golang·音视频·gin·jwt·gorm
nix.gnehc6 小时前
深入浅出 Go 内存管理(二):预分配、GC 与内存复用实战
golang
creator_Li6 小时前
Golang的Channel
golang·channel
nix.gnehc8 小时前
深入理解Go并发核心:GMP模型与Goroutine底层原理
开发语言·算法·golang
nix.gnehc9 小时前
深入浅出 Go 内存管理(一):三级缓存、逃逸分析与内存碎片
golang
nix.gnehc9 小时前
Go进阶攻坚+专家深耕级学习清单|聚焦高并发、高性能中间件/底层框架开发(Java开发者专属)
学习·中间件·golang
普通网友1 天前
PL/SQL语言的正则表达式
开发语言·后端·golang
一个处女座的程序猿O(∩_∩)O1 天前
Go语言Map值不可寻址深度解析:原理、影响与解决方案
开发语言·后端·golang