开发者

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

开发者 https://www.devze.com 2024-08-15 12:26 出处:网络 作者: 考虑考虑
目录前言viper使用viper仓库为viper依赖安装viper使用viper写入文件总结前言 在项目开发中,需要把一些配置配置提取出来,方便配置和管理,可以使用Viper工具,Viper 是 Go 应用程序的完整配置解决方案,也支持从环境
目录
  • 前言
  • viper使用
    • viper仓库为
    • viper依赖安装
    • viper使用
    • viper写入文件
  • 总结

    前言

    在项目开发中,需要把一些配置配置提取出来,方便配置和管理,可以使用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文件下

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

    (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 := www.devze.comviperConfig.Unmarshal(&user)
        log.Println(user)
        log.Ppythonrintln("解析异常:", err)
    
    }
    

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

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

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

    package main
    
    importFHmUk (
        "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 != FHmUknil {
           if _, ok := err.(viper.ConfigFileNotFoundError); ok {
              // 配置文件未找到错误;如果需要可以忽略
              log.Println("配置文件没找到")
           } else {
              // 配置文件被找到,但产生了另外的错误
              log.Pri编程ntln("读取文件异常:", err)
           }
        }
        log.Println("值为:", viperConfig.Get("app.name"))
        log.Println("值为:", viperConfig.Get("app.config"))
    
    }
    

    输出结果为

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

    viper写入文件

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

    package main
    
    import "github.com/spf13/viper"
    
    
    func main() {
        viper.Set("app.test", "aaa1")
        //viper.WriteConfig()
        viper.WriteConfigAs("./config/app.yaml")
    
    }
    

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

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

    总结

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

    以上就是go使用Viper管理配置文件的方法步骤的详细内容,更多关于go Viper管理配置文件的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号