viper 配置解析器
go 中参数解析通过api可以很方便的解析,但是还有其他更方便的方法吗?
答案,有。
viper 解析库
他能干啥呢?
- 读取多种形式的配置信息
- 监听配置信息的变化
- 序列化配置信息等
配置文件的形式主要包括:
- json
- toml
- yaml
- yml
- properties
- props
- prop
- hcl
- tfvars
- dotenv
- env
- ini
优先级:
监听配置文件的变化
viper.OnConfigChange(func(e fsnotify.Event) { fmt.Println("Config file changed:", e.Name) }) viper.WatchConfig()
序列化配置信息
type MySQL struct { Host string DbName string Port string Username string Password string Charset string } func main() { viper.SetConfigName("config") viper.SetConfigType("yaml") viper.AddConfigPath(".") viper.ReadInConfig() var mysql MySQL viper.Unmarshal(&mysql)//序列化 fmt.Println(mysql.Username) fmt.Println(mysql.Host) }