viper
基本用法如下:
设置默认值
viper.SetDefault(key,value)
读取配置文件
viper.SetConfigName("config.yml") // 读取名为config的配置文件,没有设置特定的文件后缀名
viper.SetConfigType("yaml") // 当没有设置特定的文件后缀名时,必须要指定文件类型
viper.AddConfigPath("./") // 在当前文件夹下寻找
viper.AddConfigPath("$HOME/") // 使用变量
viper.AddConfigPath(".") // 在工作目录下查找
viper.ReadInConfig() // 读取配置
viper.WatchConfig() // 监控并重载
// 钩子函数
viper.OnConfigChange(func(e fsnotify.Event) {
fmt.Println("配置文件已更改:", e.Name)
})
访问配置方法
Get(key string) : interface{}GetBool(key string) : boolGetFloat64(key string) : float64GetInt(key string) : intGetIntSlice(key string) : []intGetString(key string) : stringGetStringMap(key string) : map[string]interface{}GetStringMapString(key string) : map[string]stringGetStringSlice(key string) : []stringGetTime(key string) : time.TimeGetDuration(key string) : time.DurationIsSet(key string) : boolAllSettings() : map[string]interface{}
当访问嵌套配置的时候通过.分隔符进行访问,例如GetString("server.database.url")。
进阶用法详见文档。