#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項目地址進行了解