為了快速聲明配置文件中的全局變量而寫的封裝包,大家笑納,廢話少說,直接上方法。
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、永修網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為永修等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1.首先,下載包:
1
2
go get "github.com/luckykris/go-utilbox/Env"
go get "github.com/luckykris/go-utilbox/Conf/ReadConf"
2.書寫配置文件(例):
vim test.cfg,寫入如下配置內(nèi)容:
1
2
3
4
5
6
7
8
[gms]
port = 2016
[db]
db = mysql
user = root
password = redhat
port = 3306
host = 127.0.0.1
3.寫一個test.go來獲取配置文件里的配置,并且將所有配置文件內(nèi)的信息聲明全局變量,注意,你需要在go代碼里提前定義各項配置的數(shù)據(jù)類型(string,int目前只支持兩類)以及默認值。如下列g(shù)o代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main
import(
"github.com/luckykris/go-utilbox/Env"
"github.com/luckykris/go-utilbox/Conf/ReadConf"
"fmt"
)
func main(){
Init()
}
func Init(){
//定義gms配置區(qū)域
gms:=ReadConf.CONFIG{
AREA:"gms",//區(qū)域名
CONF:map[string]ReadConf.CONFIGROW{
"port":{TYPE:"int",EXIT:false,DEFAULT:1},//具體配置,
//此條為port配置默認值為1
//類型為int
//注意:如果標明類型是int默認值
//不要加雙引號“”不然會被認為 //是字符串.
//false的意思是,當配置文件里讀 //取不到這個配置的時候程序退出
},
}
//定義db配置區(qū)域
db:=ReadConf.CONFIG{
AREA:"db",//區(qū)域名
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"},
},
}
//讓程序讀取配合文件,并且把需要提取的配置區(qū)域變量傳入LodConf函數(shù)
//這個函數(shù)執(zhí)行之后,所有實現(xiàn)定義的配置就都生成全局變量了。
ReadConf.LoadConf("test.cfg",gms,db)
//以下是對配置文件的全局變量的調(diào)用方式,用Env.ENV["配置區(qū)域/配置條目"].(類型)
//因為返回的值是interface{}類型的,所以需要自己轉(zhuǎn)換下類型。
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.以下就是執(zhí)行此GO程序后的輸出結(jié)果啦:
1
2
3
4
5
6
7
[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
go run 或者 go build后在配置目錄的相對路徑上執(zhí)行
假設(shè)當前目錄如下:
├─config
│ │ main.go
│ │
│ └─file // 配置文件目錄
│ config.ini
│
也就是說無論你是go run或者build后的執(zhí)行程序,都應(yīng)該在你執(zhí)行目錄下
有該配置文件路徑如file/config.ini
否則就會發(fā)生以下錯誤, 無法讀取配置文件
panic: Error:can not read file "./file/config.ini"
使用絕對路徑讀取配置文件
如果配置文件動態(tài)的話, 具體怎么傳入 配置文件路徑
go-bindata 把配置文件打包進去
5.1 使用遠程配置中心去讀取配置
1、下載go的zip文件。并且一定要把文件解壓到c:\go目錄下。
2、配置windows的高級環(huán)境變量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path變量里面把c:\go\bin加入。以便可以在命令行直接運行g(shù)o命令。
分享名稱:go語言讀取配置文件,linux配置go
分享地址:http://jinyejixie.com/article0/hsiioo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站營銷、自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)