Golang viper – 管理設定檔的工具

大型項目中,通常把一些設定放入單獨的設定文檔中。viper 是管理這些設定文檔的工具。

安裝 viper go get github.com/spf13/viper

特點:

  • 設定預設值
  • 讀取 JSON、TOML、YAML、HCL、envfile 和 Java 屬性設定檔
  • 即時觀看和重新讀取設定檔(可選)
  • 從環境變數中讀取
  • 從遠端配置系統(etcd 或 Consul)讀取並觀察更改
  • 從命令列標誌讀取
  • 從緩衝區讀取
  • 設定明確的值

例子:

func main() {
	//viper.SetConfigName("app") // name of config file (without extension)
	//viper.SetConfigType("yaml")
	viper.SetConfigFile(".env")
	viper.AddConfigPath(".")
	err := viper.ReadInConfig() // Find and read the config file
	if err != nil {             // Handle errors reading the config file
		panic(fmt.Errorf("fatal error config file: %w", err))
	}

	fmt.Println(viper.Get("version"))
	fmt.Println(viper.Get("animal"))
}

官方文檔: https://github.com/spf13/viper