golang讀取配置檔案

2021-08-10 15:57:19 字數 1821 閱讀 6203

在專案中往往將一些配置資訊放到配置檔案中,這樣在不同的執行環境中,只需修改配置檔案即可。

以下介紹兩種通過第三方包獲取配置檔案的方式

一.通過gopkg.in/ini.v1

go get  gopkg.in/ini.v1
1. 配置檔案

test.conf

;[mqtt]

mqtt_hostname = 127.0.0.1

mqtt_port = 8083

mqtt_user = admin

mqtt_pass = 123456

mqtt_keepalive = 60

mqtt_timeout = 3

2. 獲取配置檔案並轉成結構體

package main

import (

"log"

"gopkg.in/ini.v1"

)var filepath ="d:/goproject/src/test/test.conf"

type config struct

func main()

log.println(config)}

//讀取配置檔案並轉成結構體

func readconfig(path string) (config, error)

conf.blockmode = false

err = conf.mapto(&config) //解析成結構體

if err != nil

return config, nil}

執行結果:

二、github.com/larspensjo/config   讀取

ini配置檔案

1.獲取第三方包:

go get github.com/larspensjo/config
2.配置檔案

config.ini

[mqtt]  #一級選項section

#下面為option

mqtt_hostname = 127.0.0.1

mqtt_port = 8083

mqtt_user = admin

mqtt_pass = 123456

mqtt_keepalive = 60

mqtt_timeout = 3

3. 獲取配置檔案並轉成

////支援命令列輸入格式為-configfile=name, 預設為config.ini

//配置檔案一般獲取到都是型別

configfile = flag.string("configfile","config.ini","general configuration file")

topic = make(map[string]string))

func main()

if cfg.hassection("mqtt") }}

} log.println(topic)

}4. 執行和結果:

由於需要指定配置檔案,故需要在命令列中執行

golang 讀取配置檔案vipper

讀取配置檔案的,有toml和vipper兩種好用的方法,toml的方法見 最大的特點就是要為配置檔案構建相對應的結構體,有點囧,現在講乙個vipper。init 初始化配置 func init v viper.new v.setconfigtype yaml v.setconfigname env ...

Golang讀取配置檔案 ini 資訊

package main import fmt io ioutil regexp strings func checkerr e error 函式名 getcfg tag string,cfg string string 參 數 tag string 引數的名稱 cfg string 配置資訊字串 ...

Golang庫 viper讀取配置檔案

viper是由steve francia編寫的開源配置解決方案,也是cobra的作者,我們來看下viper的功能 go get github.com spf13 vipergithub位址 在讀取配置檔案中我們將會演示viper的集中使用方式 我們以.yml檔案為例 這裡的配置檔案讀取可以使用相對路...