PhalGo-Viper获取配置

PhalGo-Viper获取配置,第1张

概述#PhalGo-Viper获取配置 viper项目地址:https://github.com/spf13/viper ##什么是viper viper是国外大神spf13编写的开源配置解决方案,viper拥有一下功能以及特性如下: 设置默认值 从JSON,toml YAML,HCl,和java属性配置文件 从环境变量env读取值 读缓冲区 远程读取配置文件 key不区分大小写 ##为什么用vipe

#PhalGo-Viper获取配置

viper项目地址:https://github.com/spf13/viper

##什么是viper

viper是国外大神spf13编写的开源配置解决方案,viper拥有一下功能以及特性如下:

设置默认值 从JsON,toml YAML,HCl,和java属性配置文件 从环境变量env读取值 读缓冲区 远程读取配置文件 key不区分大小写

##为什么用viper

viper不用担心你的文件格式,可以获取环境变量,也可以从远端获取配置文件,并且还有缓冲机制,功能非常棒非常牛逼,能满足不同的对配置文件的使用的要求,所以PhalGo采用viper来解决配置问题

##初始化Config

PhalGo追求最简单的使用各个组件所以viper我们只需要初始化就可以开始使用,我们只需要调用NewConfig函数需要你传入两个参数,一个是你文件相对于项目目录的相对路径,比如我在项目目录下建立的/conf文件目录就需要填写conf,第二个就是配置文件文件名,只需要名称即可,可以不用输入后缀viper会自动识别.

//初始化配置文件phalgo.NewConfig("conf","sys")

比如我们创建了一个sys.toml文件内容如下:

强烈推荐使用toml格式,toml格式介绍:http://mlworks.cn/posts/introduction-to-toml/

[system]port = ":1234"[dbDefault]dbHost = "localhost"           #数据库连接地址dbname = "phalgo"              #数据库名称dbUser = "root"                #数据库用户名dbPasswd = ""                  #数据库密码dbPort = "3306"                #数据库端口号dbOpenconns_max = 20           #最大连接数dbIDleconns_max = 0            #最大空闲连接dbType = "MysqL"               #数据库类型

我们就可以简单的使用

phalgo.Config.GetString("system.port")  #返回一个string类型的":1234"

phalgo.Config和**"github.com/spf13/viper"**是等价的,所以可以通过phalgo.Config来调用viper提供的方法

##Config详解

###设置默认值

phalgo.Config.SetDefault("ContentDir","content")phalgo.Config.SetDefault("LayoutDir","layouts")phalgo.Config.SetDefault("TaxonomIEs",map[string]string{"tag": "Tags","category": "categorIEs"})

###获取不同类型配置

phalgo.Config.Get(key string) : interface{} phalgo.Config.GetBool(key string) : bool phalgo.Config.Getfloat64(key string) : float64 phalgo.Config.GetInt(key string) : int phalgo.Config.GetString(key string) : string phalgo.Config.GetStringMap(key string) : map[string]interface{} phalgo.Config.GetStringMapString(key string) : map[string]string phalgo.Config.GetStringSlice(key string) : []string phalgo.Config.GetTime(key string) : time.Time phalgo.Config.GetDuration(key string) : time.Duration phalgo.Config.IsSet(key string) : bool

###获取多级参数

viper支持获取配置的层级关系,在每个key之间通过"."分割机制,比如上面演示的

phalgo.Config.GetString("system.port")

就是获取的二级参数

##更多

viper提供很多有意思的功能,可以通过开篇viper项目地址进行了解

总结

以上是内存溢出为你收集整理的PhalGo-Viper获取配置全部内容,希望文章能够帮你解决PhalGo-Viper获取配置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存