Skip to content

viper

viper

Golang中文学习文档

基本用法如下:

设置默认值

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) : bool
  • GetFloat64(key string) : float64
  • GetInt(key string) : int
  • GetIntSlice(key string) : []int
  • GetString(key string) : string
  • GetStringMap(key string) : map[string]interface{}
  • GetStringMapString(key string) : map[string]string
  • GetStringSlice(key string) : []string
  • GetTime(key string) : time.Time
  • GetDuration(key string) : time.Duration
  • IsSet(key string) : bool
  • AllSettings() : map[string]interface{}

当访问嵌套配置的时候通过.分隔符进行访问,例如GetString("server.database.url")

进阶用法详见文档。