1. 程式人生 > >Golang學習之從命令列讀取config配置檔案

Golang學習之從命令列讀取config配置檔案

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為你工程的專案入口檔案

執行結果如下:

即執行結果為我們自定義的配置檔案

今天的學習到此結束,繼續上班了~