gin.New() 和 gin.Default() 的区别

内容纲要

在 Gin Web 框架中,gin.New() gin.Default() 都是用来创建 Gin 引擎实例的函数,但它们有以下关键区别:

gin.New()

  • 创建一个没有任何默认中间件的纯净 Gin 引擎实例

  • 需要手动添加所有需要的中间件

  • 适合需要完全控制中间件的情况

  • 示例:

r := gin.New()
// 需要手动添加Logger和Recovery中间件
r.Use(gin.Logger())
r.Use(gin.Recovery())

gin.Default()

  • 创建一个带有默认中间件的 Gin 引擎实例

  • 自动添加了以下两个有用的中间件:

    • gin.Logger() - 日志记录中间件

    • gin.Recovery() - 恐慌恢复中间件

  • 适合大多数常规应用场景

  • 示例:

    r := gin.Default() // 已经包含了Logger和Recovery

选择建议

  • 如果你需要完全控制中间件或者不需要默认的日志/恢复功能,使用 gin.New()

  • 对于大多数标准 web 应用,使用 gin.Default() 更方便,因为它提供了基本的安全和日志功能

两者在其他功能上没有区别,都可以添加路由、运行服务器等。区别仅在于初始中间件的配置。