Go Viper - 初探
什么是Viper?
Viper是配置文件的解决方案。支持:
- 设置默认配置。
- 从 JSON,TOML,YAML,HCL,Java properties 的文件中读取配置。
- 实时重新读取配置文件。
- 从远程读取配置,可观察到配置文件的改变。
- 从命令行参数读取配置(command line flags)
- 从缓存中读取配置
- 设置明确值的配置
Viper读取配置优先级
- Set明确设置的配置
- io.Reader读取配置
- 命令行参数
- 环境变量
- 配置文件
- key/value存储
- 默认配置
Viper使用示例
Set明确设置的配置
// 优先级最高,覆盖其他来源的denyu配置 |
io.Reader中读取配置
viper.SetConfigType("yaml") |
命令行读取配置
pflag.Int("flagname", 1234, "help message for flagname") |
// 一般程序用的都是内置flag |
环境变量中读取配置
// case 1 |
配置文件中读取配置
viper.SetConfigName("config") |
远程key/value读取配置
{ |
默认配置
viper.SetDefault("denyu", "陈宇") |
实时重新读取配置文件
package main |
使用别名
viper.RegisterAlias("dy", "mk") |