Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go 配置管理库 Viper

Golang配置管理库 Viper的教程详解

作者:是记忆啦

这篇文章主要介绍了Golang 配置管理库 Viper,使用 viper 能够很好的去管理你的配置文件信息,比如数据库的账号密码,服务器监听的端口,你可以通过更改配置文件去更改这些内容,而不用定位到那一段代码上去,提高了开发效率,需要的朋友可以参考下

一、Viper 是什么?

Viper 是应用程序的完整配置的管理工具,用于在应用程序中工作,可以处理所有类型的配置需求和格式。

二、安装 Viper

go get github.com/spf13/viper

三、Viper 有什么作用

四、Viper demo 可供参考

func main() {
	ReadIni()
	ReadYml()
}
func ReadIni() {
	v := viper.New()
    v.AddConfigPath("./conf")  // 路径(当前路径下的conf文件夹)
	v.SetConfigName("configA") // 名称
	v.SetConfigType("ini")     // 类型
	err := v.ReadInConfig() // 读配置
	if err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("找不到配置文件..")
		} else {
			fmt.Println("配置文件出错..")
		}
	}
	// [section] 如果没写就是 default,也就是下面的 key 变成 default.username
	s1 := v.GetString("db.username")
	s2 := v.GetInt("web.port")
	fmt.Printf("ini 文件的数据库名字:%v, 网络端口号:%v \n", s1, s2)
}
func ReadYml() {
	v := viper.New()
	v.AddConfigPath("./conf")
	v.SetConfigName("configB")
	v.SetConfigType("yml")
	err := v.ReadInConfig()
	if err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("找不到配置文件..")
		} else {
			fmt.Println("配置文件出错..")
		}
	}
	s1 := v.GetString("db.username")
	s2 := v.GetInt("web.port")
	s3 := v.GetString("app.time")
	fmt.Printf("yml 文件的数据库名字:%v, 网络端口号:%v, apptime:%v \n", s1, s2, s3)
}

结果:

ini 文件的数据库名字:admin, 网络端口号:8080
yml 文件的数据库名字:root, 网络端口号:8088, apptime:05/30

配置文件内容

;数据库配置
[db]
username=admin
password=123
driver=mysql
port=3306
;网络配置
[web]
port=8080
# 数据库配置
db: 
    username: root
    password: 123
    driver: mysql
    port: 3306
# 网络配置
web:
    port: 8088
# APP配置
app: {id: 10,time: 05/30}

注意

以上例子在根目录下面创建了 conf 文件夹,然后创建了 configA.ini 和 configB.yml 文件

五、总结

使用 viper 能够很好的去管理你的配置文件信息,比如数据库的账号密码,服务器监听的端口,你可以通过更改配置文件去更改这些内容,而不用定位到那一段代码上去,提高了开发效率。 需要注意的是,你还需要补充配置文件的格式相关的知识,才能更好的去使用它。

到此这篇关于Golang 配置管理库 Viper的文章就介绍到这了,更多相关go 配置管理库 Viper内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文