Golang學習之從命令列讀取config配置檔案
阿新 • • 發佈:2018-12-25
Golang學習筆記之從命令列讀取配置檔案
注:本文為個人學習筆記,如果你看到本文有收穫請給予點贊支援,如果發現錯誤,請告知,謝謝!
應用場景
很多時候,我們都是講伺服器環境配置引數在程式碼中寫死,然後隨著程式碼打不同環境的包檔案
,那麼如何才能動態載入我們所需要的配置檔案呢?這個時候,是我們flag包發揮作用的時候了,接下來我們
直接以程式碼演示,我們從
【1】載入程式碼中配置檔案
【2】執行指定目錄下配置檔案
兩方面開始進行~
方式一、讀取程式碼預設配置檔案
現有目錄結構
我們從/mini/api/etc/config/json中讀取mysql相關資訊,其中config.json內容為
{
"mysql":{
"name":"default-user",
"password":"defualt-pass",
"table":"user",
"dataSource":"127.0.0.1:3306"
}
}
我們利用flag來進行檔案路徑引入,然後通過flag.Parse()方法開始對讀到內容進行解析,一下是完整程式碼
var config = flag.String("config", "etc/config.json", "config file") func main() { flag.Parse() var c config2.Config conf.MustLoad(*config, &c) log.Println(c) }
注:flag.String(string,string,string)有三個引數,第一個引數,本文為config,為命令列帶引數的命令,其對應啟動命令為
go run xx.go -config /xx/xx/xx/xx.json
如果第一個引數換為f,那麼其對應啟動命令就為
go run xxx.go -f /xx/xx/xx/xx.json
然後在命令列進入工程目錄,執行go run xxx.go,這裡的xxx為你的程式入口執行檔案
那麼執行結果會獲取到預設配置即(/etc/config.json)中的內容,執行結果如下:
方式二、讀取指定路徑下配置檔案
在次之前我在我的目錄/Users/anqiansong/Users/anqiansong/config目錄下新建了一個配置檔案config.json,其內容為:
{
"mysql":{
"name":"test",
"password":"1234556",
"table":"user",
"dataSource":"127.0.0.1:3306"
}
}
接下來我們通過go run xxx.go -config /Users/anqiansong/config/config.json執行,其中xxx為你工程的專案入口檔案
執行結果如下:
即執行結果為我們自定義的配置檔案
今天的學習到此結束,繼續上班了~