Goland读取配置文件--viper包
2021/7/9 6:06:13
本文主要是介绍Goland读取配置文件--viper包,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package main
import (
"fmt"
"github.com/sirupsen/logrus" "github.com/spf13/viper"
)
// 配置文件解析到对象里面去
type Options struct {
// 对应yaml的mysql (Mysql--转成小写对应)
MySQL struct {
Host string
Password string
}
// 对应yaml的web
Web struct {
Auth map[string]string
}
// log
Log struct {
Max_age int
Max_size int
}
// 如果有不符合的就用标签去指定
Test struct {
Host string
} mapstructure:"db"
}
func main() {
// 读取配置文件
viper.SetConfigType("yaml") // 指定文件格式
viper.SetConfigName("test") // 文件名不用加后缀
viper.AddConfigPath(".") // 路径
// 设置环境变量读取 viper.AutomaticEnv() // 设置环境变量前缀,有这个前缀的环境变量才会读取 _连接 viper.SetEnvPrefix("mysql_exporter") if err := viper.ReadInConfig(); err != nil { logrus.Debug(err) } // 设置默认值,配置文件不存在的时候才会用这个默认值。文件不存在也会用这个默认值 viper.SetDefault("mysql.port", 3306) // 读取配置文件的值 fmt.Println(viper.Get("mysql")) fmt.Println(viper.GetString("mysql.host")) fmt.Println(viper.GetInt("mysql.port")) // fmt.Println(viper.Get("redis.port")) // set redis.port=6333 就能读取到了 Linux就配置环境变量 // 解析到结构体里面 options := new(Options) if err := viper.Unmarshal(options); err != nil { logrus.Error(err) } fmt.Println(options) // &{{192.168.1.208 123456}} // viper 写配置文件 viper.SetDefault("redis.host", "2.2.2.2") viper.WriteConfigAs("./test02.yaml")
}
这篇关于Goland读取配置文件--viper包的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23MongoDB身份认证机制揭秘!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用