go語言快速讀取配置文件並聲明環境變量

爲了快速聲明配置文件中的全局變量而寫的封裝包,大家笑納,廢話少說,直接上方法。

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章