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

相关推荐
布朗克1681 小时前
Go 入门到精通-13-指针与内存
开发语言·c++·golang·指针与内存
xurime10 小时前
Excelize 开源十周年,发布 2.11.0 版本
golang·开源·github·excel·导出·导入·excelize·基础库
北冥you鱼13 小时前
Gin 架构在区块链应用中的最佳实践
架构·区块链·gin
名字还没想好☜1 天前
Go 并发实战:用 channel 实现 worker pool
java·数据库·后端·golang·go
布朗克1681 天前
Go 入门到精通-09-复合类型之Map
开发语言·后端·golang·map
极***技1 天前
2026云原生核心!Go高并发限流实战,从原理到落地
开发语言·云原生·golang
北冥you鱼1 天前
Go 语言常用编码规范与最佳实践
开发语言·后端·golang
geovindu1 天前
go: Cascading Failures Pattern
开发语言·后端·设计模式·golang·反模式·级联失效反模式
开发小程序的之朴2 天前
认识安企CMS-安装安企CMS的环境要求
nginx·golang·系统架构
北冥you鱼2 天前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链