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)
})

浙公网安备 33010602011771号