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

golang学习---常用组件之Viper,第1张

一:简要介绍Viper

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

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

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

二:Viper安装

go get github.com/spf13/viper

三:设置默认值

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

例如:

 

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

yaml配置文件:

json配置文件:

 获取yaf配置文件的代码:

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

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

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) : bool

五:写入配置文件

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

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

七:从环境变量中读取 

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

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

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

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

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

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

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

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存