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

相关推荐
stand_forever13 小时前
PHP客户端调用由Go服务端GRPC接口
rpc·golang·php
席万里15 小时前
通过Golang订阅binlog实现轻量级的增量日志解析,并解决缓存不一致的开源库cacheflow
缓存·golang·开源
q***465215 小时前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang
柠石榴15 小时前
GO-1 模型本地部署完整教程
开发语言·后端·golang
大Null15 小时前
Linux安装GO环境
linux·golang
HotCoffee-GPS1 天前
Golang学习笔记:定时crontab
golang
q***18842 天前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
码上淘金2 天前
在 YAML 中如何将 JSON 对象作为字符串整体赋值?——兼谈 Go Template 中的 fromJson 使用
java·golang·json
小生凡一2 天前
图解|Go语言实现 Agent|LLM+MCP+RAG
开发语言·后端·golang
pipip.3 天前
Go原生高性能内存网关IMS,比Redis更快
开发语言·redis·golang