Go语言学习笔记——配置管理库viper


Golang配置管理库viper

viper是一个golang配置管理库,很多项目都使用viper来构建,例如:docker、Hugo等等

Viper 是什么?

viper 是以个完善的go语言配置包.开发它的目的是来处理各种格式的配置文件信息.

viper 支持:

  • 设置默认配置
  • 支持读取JSON TOML YAML HCL、envfile和Java属性配置文件
  • (可选)监听配置文件变化,实时读取读取配置文件内容
  • 读取环境变量值
  • 读取远程配置系统(etcd Consul)和监控配置变化
  • 读取命令行flag值
  • 读取buffer值
  • 读取确切值

为什么要使用 Viper?

当你创建app的时候需要关注怎么创建完美的app,而不需要关注怎么写配置文件.

viper 能够帮你做这些事情

  • 找到和反序列化JSON TOML YAML HCL JAVA配置文件
  • 提供一个配置文件默认值和可选值的机制
  • 提供重写配置值和Flag的可选值
  • 提供系统的参数别名,解决对以有代码的侵入
  • 轻松的辨别出用户输入值还是配置文件值

安装viper

go get github.com/spf13/viper

常见用法快速入门

读取ini配置文件

ini配置文件:

[db]
username=admin
password=123
driver=mysql
port=3306

[web]
port=8080

读取:

package main

import (
	"fmt"

	"github.com/spf13/viper"
)

func ReadIni() {
   
	v := viper.New()
	v.AddConfigPath("./conf") // 路径
	v.SetConfigName("config") // 名称
	v.SetConfigType("ini")    // 类型

	err := v.ReadInConfig() // 读取配置
	if err != nil {
   
		panic(err)
	}

	s := v.GetString("db.username")
	fmt.Printf("s: %v\n", s)

	i := v.GetInt("web.port")
	fmt.Printf("i: %v\n", i)
}

func main() {
   
	ReadIni()
}

运行结果:

[Running] go run "e:\golang开发学习\go_pro\main.go"
s: admin
i: 8080

[Done] exited with code=0 in 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值