竹简文档
初始化

配置初始化

ConfigInit 从 .env 文件加载环境变量

配置初始化

ConfigInit 方法从 .env 文件加载环境变量到系统环境中。

ConfigInit

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

实现:

register_config.go
func (r *Reg) ConfigInit() {
    // 加载 .env 文件到环境变量(忽略不存在的错误)
    _ = godotenv.Load()
}

配置文件

在项目根目录创建 .env 文件:

.env
# 调试模式
XLF_DEBUG=true

# 雪花算法配置
SNOWFLAKE_DATACENTER_ID=1
SNOWFLAKE_NODE_ID=1

# 服务配置
XLF_PORT=8080

读取配置

使用 xEnv 包读取环境变量:

import xEnv "github.com/bamboo-services/bamboo-base-go/defined/env"

// 读取布尔值
debug := xEnv.GetEnvBool(xEnv.Debug, false)

// 读取字符串
port := xEnv.GetEnvString("SERVER_PORT", "8080")

// 读取整数
nodeID := xEnv.GetEnvInt("SNOWFLAKE_NODE_ID", 1)

预定义环境变量

系统配置

变量名类型默认值说明
XLF_DEBUGboolfalse调试模式开关
XLF_HOSTstringlocalhostHTTP 监听地址
XLF_PORTint1118HTTP 监听端口
GRPC_PORTint1119gRPC 监听端口
GRPC_REFLECTIONboolfalsegRPC 反射开关

数据库配置

变量名类型默认值说明
DATABASE_HOSTstringlocalhost数据库主机
DATABASE_PORTint5432数据库端口
DATABASE_USERstring-数据库用户名
DATABASE_PASSstring-数据库密码
DATABASE_NAMEstring-数据库名称
DATABASE_CHARSETstringutf8mb4字符集
DATABASE_TIMEZONEstringAsia/Shanghai时区
DATABASE_PREFIXstring-表前缀

Redis 配置

变量名类型默认值说明
NOSQL_HOSTstringlocalhostRedis 主机
NOSQL_PORTint6379Redis 端口
NOSQL_PASSstring-Redis 密码
NOSQL_DATABASEint0Redis 数据库索引
NOSQL_POOL_SIZEint10连接池大小
NOSQL_PREFIXstring-键前缀

雪花算法配置

变量名类型默认值说明
SNOWFLAKE_DATACENTER_IDint自动生成数据中心 ID (0-31)
SNOWFLAKE_NODE_IDint自动生成节点 ID (0-31)

日志配置

变量名类型默认值说明
LOG_LEVELstringinfo日志级别
LOG_PATHstring./logs日志目录
LOG_MAX_SIZEint100单文件最大尺寸 (MB)
LOG_MAX_AGEint30文件保留天数
LOG_MAX_BACKUPSint10最大备份文件数
LOG_COMPRESSbooltrue是否压缩归档

运行环境配置

变量名类型默认值说明
ENVstringdevelopment运行环境
APP_NAMEstring-应用名称
APP_VERSIONstring-应用版本
TIMEZONEstringAsia/Shanghai系统时区

注意事项

  • .env 文件不存在时不会报错,会静默忽略
  • 环境变量优先级:系统环境变量 > .env 文件
  • 建议将 .env 添加到 .gitignore,避免敏感信息泄露

下一步

On this page