栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang学习---常用组件之Viper

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang学习---常用组件之Viper

一:简要介绍Viper

Viper主要是用于处理各种格式的配置文件,简化程序配置的读取问题。

Viper 支持:(后续会详细介绍)

  • 设置默认值
  • 从JSON,TOML,YAML,HCL和Java属性配置文件中读取
  • 实时观看和重新读取配置文件(可选)
  • 从环境变量中读取
  • 从远程配置系统(etcd或Consul)读取,并观察变化
  • 从命令行标志读取(flag)
  • 从缓冲区读取
  • 设置显式值

二:Viper安装

go get github.com/spf13/viper

三:设置默认值

一个好的配置系统应该支持默认值。键不需要默认值,但如果没有通过配置文件、环境变量、远程配置或命令行标志(flag)设置键,则默认值非常有用。

例如:

 

四:从yaml、json中获取配置文件

yaml配置文件:

json配置文件:

 获取yaf配置文件的代码:

 获取json的配置文件的代码:

 上述代码中涉及到了Viper取值的函数,还有如下方法:

  • 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

五:写入配置文件

将配置写入配置文件常用到以下四个函数

六:监控并重新读取配置文件

七:从环境变量中读取 

普通情况我们可以用os包带的方法来获取环境变量,如:

 Viper也完全支持环境变量,主要有3种方法帮我们使用环境变量:

1.AutomaticEnv()方法可以预先加载所有的环境变量

2.SetEnvPrefix(string)为环境变量配置前缀

3.BindEnv(string...)需要一个到两个参数,第一个参数是键名,第二个参数是环境变量名称

八:可以从远程配置系统(etcd或Consul)读取配置或者通过io.Reader获取自己配置的配置

Viper预先定义了许多配置源,如文件、环境变量、标志和远程K/V存储,但你不受其约束。你还可以实现自己所需的配置源并将其提供给viper。可通过io.Reader获取自己的配置,代码不粘,网上很多,获取远程配置代码如下:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号