#PhalGo-Viper获取配置java
viper项目地址:https://github.com/spf13/vipermysql
##什么是vipergit
viper是国外大神spf13编写的开源配置解决方案,viper拥有一下功能以及特性以下:github
##为何用vipersql
viper不用担忧你的文件格式,能够获取环境变量,也能够从远端获取配置文件,而且还有缓冲机制,功能很是棒很是牛逼,能知足不一样的对配置文件的使用的要求,因此PhalGo采用viper来解决配置问题数据库
##初始化Config函数
PhalGo追求最简单的使用各个组件因此viper咱们只须要初始化就能够开始使用,咱们只须要调用NewConfig函数须要你传入两个参数,一个是你文件相对于项目目录的相对路径,好比我在项目目录下创建的/conf文件目录就须要填写conf,第二个就是配置文件文件名,只须要名称便可,能够不用输入后缀viper会自动识别.post
//初始化配置文件 phalgo.NewConfig("conf", "sys")
好比咱们建立了一个sys.toml文件内容以下:code
强烈推荐使用toml格式,toml格式介绍:http://mlworks.cn/posts/introduction-to-toml/ip
[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"})
###获取不一样类型配置
###获取多级参数
viper支持获取配置的层级关系,在每一个key之间经过"."分割机制,好比上面演示的
phalgo.Config.GetString("system.port")
就是获取的二级参数
##更多
viper提供不少有意思的功能,能够经过开篇viper项目地址进行了解