3.8. viper 和 cast 包
说明
本节简单介绍下配置模块将会用到的两个底层包。
viper 包
我们将使用 Viper 包来作为 .env 和 config 信息的基础库。
Viper 是 Go 生态圈里一个很知名的项目,在 GitHub 上有接近 1.8 万个 star。
它支持以下特性:
- 设置默认值(存入时设置)
- 支持格式配置信息的格式包括
JSON
、TOML
、YAML
、HCL
、envfile
和Java properties
- 实时监控和重新读取配置文件(可选)
- 从环境变量中读取
- 从远程配置系统(etcd 或 Consul)读取并监控配置变化
- 从命令行参数读取配置
- 从 buffer 读取配置
- 显式配置值
Viper 的功能比较丰富,这意味着面对多变的需求时我们可以很灵...