example | ||
.gitignore | ||
configx.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
README.md |
ConfigX
ConfigX 是一个 Go 语言的配置库,提供了一种简单的方式来读取和管理应用程序的配置信息。
特性
- 支持多种配置文件格式(YAML、JSON、TOML 等)
- 环境变量支持和集成
- 配置热重载
- 类型安全的配置访问
- 支持不同环境的配置文件
- 灵活的初始化选项
- 线程安全
安装
使用 go get 安装 ConfigX:
go get gitea.cccvno1.com/chenchi/configx
快速开始
基本使用方法参考 examples 目录。
部分特性说明
环境变量支持
可以通过环境变量来覆盖配置文件中的配置项,环境变量的命名规则为 PREFIX_KEY
,其中 PREFIX
为环境变量的前缀,默认值为 APP
,KEY
为配置项的名称。例如 APP_SERVER_PORT=9000
可以覆盖配置文件中的 server.port
配置项。
不同环境的配置文件
支持根据不同的环境加载不同的配置文件,加载规则为 config.{env}.yaml
,其中 {env}
为环境名称,例如 config.dev.yaml
。env
的值可以通过环境变量 APP_ENV
来指定,默认值为 dev
。
配置热重载
通过 WithAutoReload
方法可以开启配置热重载功能,当配置文件发生变化时,会自动重新加载配置。
启动热重载功能后,可以为某一个配置项设置回调函数,当配置项发生变化时,回调函数会被调用。