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

相关推荐
桂花很香,旭很美13 小时前
[7天实战入门Go语言后端] Day 2:用 Go 写一个 HTTP 服务——net/http 入门
http·golang·xcode
我不是8神18 小时前
go-zero微服务框架总结
开发语言·微服务·golang
遇见你的雩风1 天前
【Golang】--- Goroutine
开发语言·golang
YGGP1 天前
【Golang】LeetCode 189. 轮转数组
开发语言·leetcode·golang
桂花很香,旭很美1 天前
[7天实战入门Go语言后端] Day 3:项目结构与配置——目录组织、环境变量与 viper
开发语言·数据库·golang
桂花很香,旭很美1 天前
[7天实战入门Go语言后端] Day 4:Go 数据层入门——database/sql 与简单 CRUD
数据库·sql·golang
qinaoaini2 天前
[golang][MAC]Go环境搭建+VsCode配置
vscode·macos·golang
花酒锄作田2 天前
Go - slog使用入门
golang
u***35742 天前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang
好家伙VCC2 天前
# 发散创新:基于 Go 语言打造高性能服务网格的实践与突破在微服务架构
java·python·微服务·架构·golang