首先,定义一个与YAML结构相匹配的Go结构体: 代码语言:javascript 复制 gopackagemainimport("fmt""github.com/spf13/viper")type Config struct{Server struct{Port int`mapstructure:"port"`}`mapstructure:"server"`Databases[]struct{User string`mapstructure:"user"`Password string`mapstructure:"password"`Host s...
阅读上面这段代码,结构体 UserData 中嵌套结构体 OtherInfo 和切片 Language,我们使用 Viper 提供的 tag 标签 mapstructure,将读取到的配置信息解析到 struct 中。 需要注意的是,解析指定配置信息使用 UnmarshalKey 函数,解析全部配置信息使用 Unmarshal,二者的 yaml 文件格式也不一样,读者朋友们小心踩“坑”。 03 总...
阅读上面这段代码,结构体UserData中嵌套结构体OtherInfo和切片Language,我们使用 Viper 提供的 tag 标签mapstructure,将读取到的配置信息解析到struct中。 需要注意的是,解析指定配置信息使用UnmarshalKey函数,解析全部配置信息使用Unmarshal,二者的yaml文件格式也不一样,读者朋友们小心踩“坑”。 03 总结 本文我们通过示例...
这里用一个demo演示如何在gin框架搭建的web项目中使用viper,使用viper加载配置文件中的信息,并在代码中直接使用viper.GetXXX()方法获取对应的配置值。 package mainimport ("fmt""net/http""github.com/gin-gonic/gin""github.com/spf13/viper")func main() {viper.SetConfigFile("config.yaml") // 指定配置...
一、viper简介 viper是一个go 开发工具,主要是用于处理各种格式的配置文件,简化程序配置的读取问题,所以viper 是一个配置解决方案,它拥有丰富的特性: 支持JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新的配置; ...
阅读上面这段代码,结构体UserData中嵌套结构体OtherInfo和切片Language,我们使用 Viper 提供的 tag 标签mapstructure,将读取到的配置信息解析到struct中。 需要注意的是,解析指定配置信息使用UnmarshalKey函数,解析全部配置信息使用Unmarshal,二者的yaml文件格式也不一样,读者朋友们小心踩“坑”。
Go每日一库之6:viper 简介 上一篇文章介绍cobra的时候提到了viper,今天我们就来介绍一下这个库。 viper 是一个配置解决方案,拥有丰富的特性: 支持JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新的配置;...
/* Go管理项目配置信息-Viper site: https://zhuanlan.zhihu.com/p/624901218 安装依赖: go get github.com/spf13/viper 配置文件为 config.yaml: # file : config.yaml type: yaml a1: k1: v1 k2: v2 array: - 1…
1、运行以下命令,导入Viper。 gogetgithub.com/spf13/viper 2、使用Viper导入配置文件,并将配置文件读取到结构体中,示例代码如下。 packagemainimport("GoReadConfig/config""fmt""github.com/spf13/viper")funcInitConfigByViper(){viper.SetConfigType("yaml")viper.SetConfigFile("./config/config.yml")err:...
go get github.com/spf13/viper 2、编写一个yaml的配置文件,config.yaml database: host: 127.0.0.1 user: root dbname:testpwd: 123456 AI代码助手复制代码 3、编写学习脚本main.go,读取config.yaml配置信息 packagemainimport("fmt""os""github.com/spf13/viper")funcmain(){//获取项目的执行路径path, err...