栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go语言实战-golang读取各种配置文件(ini、json、yaml)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go语言实战-golang读取各种配置文件(ini、json、yaml)

日常项目中,读取各种配置文件是避免不了的,这里介绍一个能读取多种配置文件的库,viper

viper读取ini文件
config := viper.New()
config.AddConfigPath("./conf/")  // 文件所在目录
config.SetConfigName("b")        // 文件名
config.SetConfigType("ini")      // 文件类型

if err := config.ReadInConfig(); err != nil {
	if _, ok := err.(viper.ConfigFileNotFoundError); ok {
		fmt.Println("找不到配置文件..")
	} else {
		fmt.Println("配置文件出错..")
	}
}

host := config.GetString("redis.host")  // 读取配置
fmt.Println("viper load ini: ", host)

b.ini文件如下

[mysql]
username='root'
password='123456'

[redis]
host='127.0.0.1'
poet=3306

[mongodb]
user='admin'
password='admin'
viper读取json文件
config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("c")
config.SetConfigType("json")

if err := config.ReadInConfig(); err != nil {
	if _, ok := err.(viper.ConfigFileNotFoundError); ok {
		fmt.Println("找不到配置文件..")
	} else {
		fmt.Println("配置文件出错..")
	}
}

version := config.GetString("version")
origin := config.GetString("host.origin")

fmt.Println(version)
fmt.Println(origin)

// 读取到map中
host := config.GetStringMapString("host")
fmt.Println(host)
fmt.Println(host["origin"])
fmt.Println(host["port"])

allSettings := config.AllSettings()
fmt.Println(allSettings)

c.json文件如下

{
  "version": "2.0",
  "secret": "footmark",
  "host": {
    "origin": "http://www.baidu.com",
    "port": 8080
  }
}
viper读取yaml文件
config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("a")
config.SetConfigType("yaml")

if err := config.ReadInConfig(); err != nil {
	if _, ok := err.(viper.ConfigFileNotFoundError); ok {
		fmt.Println("找不到配置文件..")
	} else {
		fmt.Println("配置文件出错..")
	}
}

host := config.GetString("database.host")
fmt.Println("viper load yml: ", host)

allSettings := config.AllSettings()
fmt.Println(allSettings)

a.yaml文件如下

database:
  host: 127.0.0.1
  user: root
  dbname: test
  pwd: 123456

viper常用方法

// viper 常用读取配置的方法
Get(key string) : interface{}
GetBool(key string) : bool
GetFloat64(key string) : float64
GetInt(key string) : int
GetIntSlice(key string) : []int
GetString(key string) : string
GetStringMap(key string) : map[string]interface{}
GetStringMapString(key string) : map[string]string
GetStringSlice(key string) : []string
GetTime(key string) : time.Time
GetDuration(key string) : time.Duration
IsSet(key string) : bool
AllSettings() : map[string]interface{}

项目代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号