在 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() 更方便,因为它提供了基本的安全和日志功能
两者在其他功能上没有区别,都可以添加路由、运行服务器等。区别仅在于初始中间件的配置。