golang模块viper读取配置文件
发布时间:2020-12-16 09:23:26 所属栏目:大数据 来源:网络整理
导读:一、介绍 Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性: 设置默认值 从JSON、TOML、YAML、HCL和Java properties文件中读取配置数据 可以监视配置文件的变动、重新读取配置文件 从环境变量中读取配置数据 从远端
一、介绍Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:
简单的设置默认值viper.SetDefault("time","2019-7-14") viper.SetDefault("notifyList",[]string{"maple","ffm"}) 监视配置文件,重新读取配置数据package main import ( "fmt" "github.com/fsnotify/fsnotify" "github.com/spf13/viper" ) viper:=viper.New() viper.WatchConfig() viper.OnConfigChange(func(e fsnotify.Event) { fmt.Println("Config file changed:",e.Name) }) 二、读取config.json#json文件 { "appId": "123456789","secret": "maple123456","host": { "address": "localhost","port": 5799 } } package main import ( "fmt" "github.com/spf13/viper" ) //定义config结构体 type Config struct { AppId string Secret string Host Host } //json中的嵌套对应结构体的嵌套 type Host struct { Address string Port int } func main() { config := viper.New() config.AddConfigPath("./kafka_demo") config.SetConfigName("config") config.SetConfigType("json") if err := config.ReadInConfig(); err != nil { panic(err) } fmt.Println(config.GetString("appId")) fmt.Println(config.GetString("secret")) fmt.Println(config.GetString("host.address")) fmt.Println(config.GetString("host.port")) //直接反序列化为Struct var configjson Config if err :=config.Unmarshal(&configjson);err !=nil{ fmt.Println(err) } fmt.Println(configjson.Host) fmt.Println(configjson.AppId) fmt.Println(configjson.Secret) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |