竹简文档
初始化

快速开始

xReg 包提供一键初始化所有核心组件

xReg 包

xReg 包是 Bamboo Base 的核心注册模块,提供一键初始化所有核心组件的能力。

import xReg "github.com/bamboo-services/bamboo-base-go/register"

Reg 结构体

应用程序的核心注册结构,包含所有初始化后的组件实例:

register.go
type Reg struct {
    Context context.Context // 上下文,用于控制取消和超时
    Serve   *gin.Engine     // Gin 引擎实例
}

字段

类型

Register

一键注册并初始化应用的所有核心组件。

register.go
func Register() *Reg

初始化顺序:

Register()
    ├── ConfigInit()        // 1. 加载配置
    ├── LoggerInit()        // 2. 初始化日志
    ├── SnowflakeInit()     // 3. 初始化雪花算法
    ├── EngineInit()        // 4. 启动 Gin 引擎
    └── SystemContextInit() // 5. 初始化系统上下文

示例:

main.go
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 文件加载环境变量配置。

register_config.go
func (r *Reg) ConfigInit()

详见:配置初始化

2. LoggerInit

初始化日志记录器,支持控制台彩色输出和文件 JSON 记录。

register_logger.go
func (r *Reg) LoggerInit()

详见:日志初始化

3. SnowflakeInit

初始化雪花算法节点,用于生成分布式唯一 ID。

register_snowflake.go
func (r *Reg) SnowflakeInit()

详见:雪花算法初始化

4. EngineInit

初始化 Gin 引擎,注册内置中间件和验证器。

register_gin.go
func (r *Reg) EngineInit()

详见:引擎初始化

5. SystemContextInit

初始化系统上下文中间件,注入雪花算法节点等全局资源。

register_context.go
func (r *Reg) SystemContextInit()

详见:上下文初始化

调试模式

通过环境变量 DEBUG 控制调试模式:

register.go
func isDebugMode() bool {
    return xEnv.GetEnvBool(xEnv.Debug, false)
}
环境变量效果
DEBUGtrue启用调试模式,日志级别为 Debug
DEBUGfalse 或未设置生产模式,日志级别为 Info

完整示例

main.go
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")
}

下一步

On this page