初始化
快速开始
xReg 包提供一键初始化所有核心组件
xReg 包
xReg 包是 Bamboo Base 的核心注册模块,提供一键初始化所有核心组件的能力。
import xReg "github.com/bamboo-services/bamboo-base-go/register"Reg 结构体
应用程序的核心注册结构,包含所有初始化后的组件实例:
type Reg struct {
Context context.Context // 上下文,用于控制取消和超时
Serve *gin.Engine // Gin 引擎实例
}字段
类型
Register
一键注册并初始化应用的所有核心组件。
func Register() *Reg初始化顺序:
Register()
├── ConfigInit() // 1. 加载配置
├── LoggerInit() // 2. 初始化日志
├── SnowflakeInit() // 3. 初始化雪花算法
├── EngineInit() // 4. 启动 Gin 引擎
└── SystemContextInit() // 5. 初始化系统上下文示例:
package main
import (
xReg "github.com/bamboo-services/bamboo-base-go/register"
)
func main() {
// 一键初始化所有组件
reg := xReg.Register()
// 注册路由
reg.Serve.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
// 启动服务
reg.Serve.Run(":8080")
}初始化流程
1. ConfigInit
从 .env 文件加载环境变量配置。
func (r *Reg) ConfigInit()详见:配置初始化
2. LoggerInit
初始化日志记录器,支持控制台彩色输出和文件 JSON 记录。
func (r *Reg) LoggerInit()详见:日志初始化
3. SnowflakeInit
初始化雪花算法节点,用于生成分布式唯一 ID。
func (r *Reg) SnowflakeInit()详见:雪花算法初始化
4. EngineInit
初始化 Gin 引擎,注册内置中间件和验证器。
func (r *Reg) EngineInit()详见:引擎初始化
5. SystemContextInit
初始化系统上下文中间件,注入雪花算法节点等全局资源。
func (r *Reg) SystemContextInit()详见:上下文初始化
调试模式
通过环境变量 DEBUG 控制调试模式:
func isDebugMode() bool {
return xEnv.GetEnvBool(xEnv.Debug, false)
}| 环境变量 | 值 | 效果 |
|---|---|---|
DEBUG | true | 启用调试模式,日志级别为 Debug |
DEBUG | false 或未设置 | 生产模式,日志级别为 Info |
完整示例
package main
import (
xReg "github.com/bamboo-services/bamboo-base-go/register"
xResult "github.com/bamboo-services/bamboo-base-go/result"
"github.com/gin-gonic/gin"
)
func main() {
// 一键初始化
reg := xReg.Register()
// 注册路由
reg.Serve.GET("/api/status", func(c *gin.Context) {
xResult.SuccessHasData(c, "服务正常", gin.H{
"status": "running",
})
})
// 启动服务
reg.Serve.Run(":8080")
}