在一個應用中經常需要有一個組態檔,可以對代碼中的引數進行配置,可以使用一個json檔案來對應一個struct的物件,進行全域配置
建一個conf/zinx.json作為組態檔
{ "Name":"zinxServer", "Host":"0.0.0.0", "TcpPort":8888}
建一個utils/GlobalObj.go utils包,比如下面這個
func init()函式可以在導包的同時被執行,并且在這個里面宣告一個全域變數作為資料存盤var GlobalObject *GlobalObj
使用ioutil.ReadFile可以直接讀取檔案
使用json.Unmarshal可以直接決議json格式并且對應一個struct , key要一致得對應好
package utilsimport "io/ioutil"import "log"import "encoding/json"type GlobalObj struct{ Name string Host string TcpPort int MaxConn int Version string MaxPackageSize int}var GlobalObject *GlobalObjfunc (g *GlobalObj)Reload(){ confFile:="conf/zinx.json" data,err:=ioutil.ReadFile(confFile) if err!=nil{ log.Println("reload conf err ",err) } err=json.Unmarshal(data,GlobalObject) if err!=nil{ log.Println("json unmarshal err ",confFile,err) }}func init(){ GlobalObject=&GlobalObj{ Name:"zinx", Host:"0.0.0.0", TcpPort: 8999, MaxConn: 1000, Version:"v0.1", MaxPackageSize: 4096, } GlobalObject.Reload()}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55024.html
標籤:Go
