Go 读取配置文件 viper、pflag、packr 的简单使用

viper
v := viper.New()
    v.SetConfigType("yaml")
    v.SetConfigName("conf")
    v.AddConfigPath("./conf")
    
    if err := v.ReadInConfig(); err != nil{
        fmt.Println("load failed.err: ", err)
    }
settings := v.AllSettings()
    for key, val := range settings{
        v.SetDefault(key, val)
        fmt.Println(key, val)
    }

v.WatchConfig()
v.OnConfigChange(func(e fsnotify.Event) {
    fmt.Println("Config file changed:", e.Name)
})
packr
box := packr.NewBox("./conf/default")
find, _ := box.Find("default.yaml")
_ = v.ReadConfig(bytes.NewReader(find))
pflag
pflag.String("ip", "127.0.0.1", "Server running address")
pflag.Parse()
    
_ = v.BindPFlags(pflag.CommandLine)
fmt.Println(v.GetString("ip"))

>>> go run main.go --ip=1

转载: https://www.cnblogs.com/rickiyang/p/11074161.html

邮箱: 1090055252@qq.com
原文地址:https://www.cnblogs.com/zhaoxianxin/p/14271689.html