Go语言的配置管理器viper

安装

go get github.com/spf13/viper

 

Viper需要最少知道在哪里查找配置文件的配置。Viper支持JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件。Viper可以搜索多个路径,但目前单个Viper实例只支持单个配置文件。Viper不默认任何配置搜索路径,将默认决策留给应用程序。

 

代码示例

package main

//viper 的使用

import (
	"fmt"
	"github.com/spf13/viper"
)
var config = flag.String("config","./config.yml","指定配置文件")
func main() {      flag.Parse() v := viper.New() v.SetConfigName(*config) v.AddConfigPath(".") v.AddConfigPath("./") v.SetConfigType("yaml")
if err := v.ReadInConfig();err !=nil{ return } v1 := v.Sub("input") fmt.Println(v1.Get("nsq")) }

  监控并重新读取配置文件

viper.WatchConfig()
viper.OnConfigChange(func(e fsnotify.Event) {
  // 配置文件发生变更之后会调用的回调函数
	fmt.Println("Config file changed:", e.Name)
})

  

posted @ 2021-01-22 11:46  pebblecome  阅读(91)  评论(0)    收藏  举报