go读取配置文件-viper

Go-viper

在这里插入图片描述

Github: https://github.com/golang-collection/Go-viper

Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。

本项目演示了读取本地配置文件和consul的key/value配置。

目录结构

- config 配置文件存放位置
- normal 读取本地配置文件
- remote 读取远程配置文件

读取本地配置文件

在config文件夹下创建config.json文件,如下所示:

{
  "mysql": {
    "user": "root",
    "password": "",
    "host": "127.0.0.1:3306",
    "db_name": "example"
  },
  "redis": {
    "host": "127.0.0.1:6553"
  },
  "rabbitmq": {
    "user": "root",
    "password": "root",
    "host": "127.0.0.1:5124"
  }
}

核心代码为:

viper.SetConfigFile("/Users/super/develop/Go-viper/config/config.json") //文件名
err := viper.ReadInConfig() // 会查找和读取配置文件

更多细节:normal

读取远程key/value

在consul的key/value中创建config,例如:
在这里插入图片描述

核心代码为:

err := viper.AddRemoteProvider("consul", config.CONSUL_URL, config.CONSUL_CONFIG)
if err != nil {
	return err
}
viper.SetConfigType("json") // Need to explicitly set this to json
err = viper.ReadRemoteConfig()

更多细节:remote

Install

go get github.com/spf13/viper

What is Viper

Viper可以适配任何应用程序,可以处理所有类型的配置需求和格式。它支持:

  • 设置默认值
  • 读取JSON, TOML, YAML, HCL, envfile和Java属性配置文件
  • 实时查看和重新读取配置文件(可选)
  • 从环境变量中读取
  • 从远程配置系统(etcd或Consul)读取,并观察变化
  • 从命令行标志读取
  • 读取缓冲区
  • 设置明确的值

License

MIT

Copyright © 2020 golang collection

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值