在 gin 框架中实现公共数据访问
对于在 php 中通过继承实现公共数据访问,gin 框架提供了替代方案。在 gin 中,公共数据可以分为两类:
全局变量:
用于存储全球统一共享的变量,如数据库地址、站点名称等。可以直接使用 gin 提供的全局变量,无需特殊处理。
通过中间件设置上下文变量:
用于在同一次请求内部共享变量。可以使用 gin 的中间件机制实现。
实现步骤:
代码示例:
app := gin.New() // 定义中间件,设置共享变量 app.Use(func(context *gin.Context) { context.Set("abc", "val") }) // 注册路由,保证中间件在前执行 app.GET("/test", func(context *gin.Context) { data, _ := context.Get("abc") context.HTML(200, data.(string), nil) })
通过这种方式,可以在 gin 框架中实现所有控制器都能获取的公共数据。