![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Gin
文章平均质量分 85
rotate_
——记录被bug困扰的美好生活
展开
-
[Gin]框架底层实现理解(三)
第二我们取出来了如果不存在就新建,存在就直接取出来,对于取出来的context进行重置reset,更新各种字段,context是我们装载此次请求的核心,还有当调用这个函数的时候,这里的req都是封装好了此次请求的请求体了,所以我们的context只不过是gin为了我们方便使用 将请求体和响应体对我们包装好了,同时提供了我们操作响应体的函数例如:c.JSON,c.String,c.Set c.Get等等函数方便我们使用请求体和响应体。请求处理完成后,把这块内存归还到 sync.pool 中,原创 2023-03-08 12:00:00 · 971 阅读 · 0 评论 -
[Gin]框架底层实现理解(二)
得到最后的handlers,在每个group内部是有一个engine的,一般都是隶属同一个engine,具体看上面的结构体实现,所以每个group最后通过那个engine找回引擎,最后的处理还是通过ServerHttp,engine是最后的处理体 我们要将对应的。传参分别是请求类型,相对路径(也就是我们请求的相对url),为什么是相对,因为这个是可以嵌套的,用过gin的都知道有个engine.Group方法可用来分组,可以提取公共url前缀,区域化代码块。这个是上一个函数中核心的函数,简单解析一下。原创 2023-03-08 07:00:00 · 660 阅读 · 0 评论 -
[Gin]框架底层实现理解(一)
路由原理———压缩字典这边简单讲一下gin非常重要的一个基点,也就是他作为go web框架的一个亮点也就是Trie树和压缩字典算法gin 通过树来存储路由,讲路由的字符拆解为一个个的结点,在获取handler函数时,会根据路由来获取对应的结点,结点中包含了handler函数,根据结点来获取对应的handler函数主要就是压缩字典算法:原创 2023-03-07 18:18:15 · 456 阅读 · 0 评论