当前位置: 代码网 > it编程>前端脚本>Golang > go使用Viper管理配置文件的方法步骤

go使用Viper管理配置文件的方法步骤

2024年09月06日 Golang 我要评论
前言在项目开发中,需要把一些配置配置提取出来,方便配置和管理,可以使用viper工具,viper 是 go 应用程序的完整配置解决方案,也支持从环境变量中读取viper使用viper仓库为 https

前言

在项目开发中,需要把一些配置配置提取出来,方便配置和管理,可以使用viper工具,viper 是 go 应用程序的完整配置解决方案,也支持从环境变量中读取

viper使用

viper仓库为

 https://github.com/spf13/viper?tab=readme-ov-file

viper依赖安装

使用以下命令安装viper依赖

 go get github.com/spf13/viper

viper使用

(1)定义一个yaml配置文件,如

app:
  name: hello
  config: 1

放在config文件下

(2)程序读取配置文件,使用程序

package main

import (
    "github.com/spf13/viper"
    "log"
)

type app struct {
    name   string
    config int64
}

type user struct {
    app app
}

func main() {
    viperconfig := viper.new()
    // 查找配置文件所在的路径
    viperconfig.addconfigpath("./config")
    // 如果配置文件的名称中没有扩展名,则需要配置此项
    viperconfig.setconfigtype("yml")
    // 配置文件名称(无扩展名)
    viperconfig.setconfigname("app")
    if err := viperconfig.readinconfig(); err != nil {
       if _, ok := err.(viper.configfilenotfounderror); ok {
          // 配置文件未找到错误;如果需要可以忽略
          log.println("配置文件没找到")
       } else {
          // 配置文件被找到,但产生了另外的错误
          log.println("读取文件异常:", err)
       }
    }
    var user user
    err := viperconfig.unmarshal(&user)
    log.println(user)
    log.println("解析异常:", err)

}

将配置文件转为对象,输出结果为

(3)也可以不将配置文件转换成类,直接使用键值取值

package main

import (
    "github.com/spf13/viper"
    "log"
)

type app struct {
    name   string
    config int64
}

type user struct {
    app app
}

func main() {
    viperconfig := viper.new()
    // 查找配置文件所在的路径
    viperconfig.addconfigpath("./config")
    // 如果配置文件的名称中没有扩展名,则需要配置此项
    viperconfig.setconfigtype("yml")
    // 配置文件名称(无扩展名)
    viperconfig.setconfigname("app")
    if err := viperconfig.readinconfig(); err != nil {
       if _, ok := err.(viper.configfilenotfounderror); ok {
          // 配置文件未找到错误;如果需要可以忽略
          log.println("配置文件没找到")
       } else {
          // 配置文件被找到,但产生了另外的错误
          log.println("读取文件异常:", err)
       }
    }
    log.println("值为:", viperconfig.get("app.name"))
    log.println("值为:", viperconfig.get("app.config"))

}

输出结果为

viper写入文件

在开发过程中,我们如果要利用viper写入文件,可以使用

package main

import "github.com/spf13/viper"


func main() {
    viper.set("app.test", "aaa1")
    //viper.writeconfig()
    viper.writeconfigas("./config/app.yaml")

}

总结

viper是一个强大的工具类库,可以使用其管理项目中的配置文件,不过go也有其他配置文件,根据自己上手程序和熟练程度而定

以上就是go使用viper管理配置文件的方法步骤的详细内容,更多关于go viper管理配置文件的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com