Go to file
2024-08-31 12:06:26 +08:00
example chore: Add ConfigX library for managing application configurations 2024-08-31 12:04:08 +08:00
.gitignore Initial commit 2024-08-31 09:03:50 +08:00
configx.go chore: Add ConfigX library for managing application configurations 2024-08-31 12:04:08 +08:00
go.mod chore: Update go.mod with new dependencies 2024-08-31 12:06:26 +08:00
go.sum chore: Update go.mod with new dependencies 2024-08-31 12:06:26 +08:00
LICENSE Initial commit 2024-08-31 09:03:50 +08:00
README.md chore: Add ConfigX library for managing application configurations 2024-08-31 12:04:08 +08:00

ConfigX

ConfigX 是一个 Go 语言的配置库,提供了一种简单的方式来读取和管理应用程序的配置信息。

特性

  • 支持多种配置文件格式YAML、JSON、TOML 等)
  • 环境变量支持和集成
  • 配置热重载
  • 类型安全的配置访问
  • 支持不同环境的配置文件
  • 灵活的初始化选项
  • 线程安全

安装

使用 go get 安装 ConfigX

go get gitea.cccvno1.com/chenchi/configx

快速开始

基本使用方法参考 examples 目录。

部分特性说明

环境变量支持

可以通过环境变量来覆盖配置文件中的配置项,环境变量的命名规则为 PREFIX_KEY,其中 PREFIX 为环境变量的前缀,默认值为 APPKEY 为配置项的名称。例如 APP_SERVER_PORT=9000 可以覆盖配置文件中的 server.port 配置项。

不同环境的配置文件

支持根据不同的环境加载不同的配置文件,加载规则为 config.{env}.yaml,其中 {env} 为环境名称,例如 config.dev.yamlenv 的值可以通过环境变量 APP_ENV 来指定,默认值为 dev

配置热重载

通过 WithAutoReload 方法可以开启配置热重载功能,当配置文件发生变化时,会自动重新加载配置。
启动热重载功能后,可以为某一个配置项设置回调函数,当配置项发生变化时,回调函数会被调用。