go 中参数解析通过api可以很方便的解析,但是还有其他更方便的方法吗?

答案,有。

viper 解析库

他能干啥呢?

  1. 读取多种形式的配置信息
  2. 监听配置信息的变化
  3. 序列化配置信息等

配置文件的形式主要包括:

  • 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)

}

云想时空 » viper 配置解析器

发表评论

提供最优质的资源集合

立即查看 了解详情