爲了快速聲明配置文件中的全局變量而寫的封裝包,大家笑納,廢話少說,直接上方法。
1.首先,下載包:
go get "github.com/luckykris/go-utilbox/Env" go get "github.com/luckykris/go-utilbox/Conf/ReadConf"
2.書寫配置文件(例):
vim test.cfg,寫入如下配置內容:
[gms] port = 2016 [db] db = mysql user = root password = redhat port = 3306 host = 127.0.0.1
3.寫一個test.go來獲取配置文件裏的配置,並且將所有配置文件內的信息聲明全局變量,注意,你需要在go代碼裏提前定義各項配置的數據類型(string,int目前只支持兩類)以及默認值。如下列go代碼:
package main import( "github.com/luckykris/go-utilbox/Env" "github.com/luckykris/go-utilbox/Conf/ReadConf" "fmt" ) func main(){ Init() } func Init(){ //定義gms配置區域 gms:=ReadConf.CONFIG{ AREA:"gms",//區域名 CONF:map[string]ReadConf.CONFIGROW{ "port":{TYPE:"int",EXIT:false,DEFAULT:1},//具體配置, //此條爲port配置默認值爲1 //類型爲int //注意:如果標明類型是int默認值 //不要加雙引號“”不然會被認爲 //是字符串. //false的意思是,當配置文件裏讀 //取不到這個配置的時候程序退出 }, } //定義db配置區域 db:=ReadConf.CONFIG{ AREA:"db",//區域名 CONF:map[string]ReadConf.CONFIGROW{ "port":{TYPE:"int",EXIT:false,DEFAULT:3306}, "db":{TYPE:"string",EXIT:false,DEFAULT:"mongo"}, "user":{TYPE:"string",EXIT:false,DEFAULT:"root"}, "password":{TYPE:"string",EXIT:false,DEFAULT:"root"}, "host":{TYPE:"string",EXIT:false,DEFAULT:"localhost"}, }, } //讓程序讀取配合文件,並且把需要提取的配置區域變量傳入LodConf函數 //這個函數執行之後,所有實現定義的配置就都生成全局變量了。 ReadConf.LoadConf("test.cfg",gms,db) //以下是對配置文件的全局變量的調用方式,用Env.ENV["配置區域/配置條目"].(類型) //因爲返回的值是interface{}類型的,所以需要自己轉換下類型。 fmt.Printf("gms/port:%d\n",Env.ENV["gms/port"].(int)) fmt.Printf("db/port:%d\n",Env.ENV["db/port"].(int)) fmt.Printf("db/db:%s\n",Env.ENV["db/db"].(string)) fmt.Printf("db/user:%s\n",Env.ENV["db/user"].(string)) fmt.Printf("db/password:%s\n",Env.ENV["db/password"].(string)) fmt.Printf("db/host:%s\n",Env.ENV["db/host"].(string)) }
4.以下就是執行此GO程序後的輸出結果啦:
[[email protected] GoMonitorServer]# go run test.go gms/port:2016 db/port:3306 db/db:mysql db/user:root db/password:redhat db/host:127.0.0.1