![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Gin
文章平均质量分 65
BigBee3.
这个作者很懒,什么都没留下…
展开
-
gin源码分析(2)gin启动http服务
NEXT()调用c.handlers[c.index](c)执行第一个中间件,在调用第一个中间件函数M1执行中途调用了Next(),进入Next(),函数下标c.index++,指向下一个中间件函数,等待下一个中间件函数M2,以及M2后面的处理函数。直到所有的函数都调用完,回到M1,执行后面的逻辑,打印M1-B。停止就很简单,把该次的调用index数值设为abortIndex,abortIndex为handlers的最大数量combineHandlers函数里做了限制handler添加的最大数量。原创 2024-04-02 11:24:45 · 905 阅读 · 0 评论 -
gin源码分析(1)--初始化中间件,路由组与路由树
Engine继承了RouterGroup,gin.Default()初始化了Engine与第一个RouterGroup,并初始化了两个默认的中间件,Logger(), Recovery(),他们的作用与配置上面代码中有介绍。只是利用上一个RouterGroup的Group函数创建一个新的RouterGroup,并把之前RouterGroup与Engine注册的中间件全部复制过来。gin.Use的核心功能为把传入进来的中间件合并到RouterGroup的Handlers数组中,代码如下。原创 2024-04-02 11:21:58 · 737 阅读 · 0 评论