标签: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":ReadConf.CONFIGROW{TYPE:"int",DEFAULT:"1"},//具体配置, //此条为port配置默认值为1 //类型为int }, } //定义db配置区域 db:=ReadConf.CONFIG{ AREA:"db",//区域名 CONF:map[string]ReadConf.CONFIGROW{ "port":ReadConf.CONFIGROW{TYPE:"int",DEFAULT:"3306"}, "db":ReadConf.CONFIGROW{TYPE:"string",DEFAULT:"mongo"}, "user":ReadConf.CONFIGROW{TYPE:"string",DEFAULT:"root"}, "password":ReadConf.CONFIGROW{TYPE:"string",DEFAULT:"root"}, "host":ReadConf.CONFIGROW{TYPE:"string",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程序后的输出结果啦:
[root@gbz.test.org 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
本文出自 “北京的大连人” 博客,请务必保留此出处http://luckykris.blog.51cto.com/3209560/1567782
标签:go语言
原文地址:http://luckykris.blog.51cto.com/3209560/1567782