Viper简明教程


1、什么是Viper

Viper 是 Go 应用程序的完整配置解决方案,包括 12-Factor 应用程序。它旨在在应用程序中工作,可以处理所有类型的配置需求和格式。它支持:

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

2、使用方法

2.1、引入viper依赖

import "github.com/spf13/viper"

2.2、新建配置文件application.yml

server:
  ip: "192.168.8.110"
  port: 3306

web:
  protocols:
    - "http"
    - "https"
  ports:
    - 8080
    - 8081

2.3、读取配置文件

package main

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

func main() {
    viper.SetConfigName("application")
    viper.SetConfigType("yaml")
    viper.AddConfigPath(".")

    if err := viper.ReadInConfig(); nil != err {
        if _, ok := err.(viper.ConfigFileNotFoundError); ok {
            log.Fatal("配置文件路径不存在")
        } else {
            log.Fatal("读取配置文件错误: %v\n", err)
        }
    }

    fmt.Printf("server.ip: %s\n", viper.GetString("server.ip"))
    fmt.Printf("server.port: %d\n", viper.GetInt("server.port"))
    fmt.Printf("web.protocols: %v\n", viper.GetStringSlice("web.protocols"))
    fmt.Printf("web.ports: %v\n", viper.GetIntSlice("web.ports"))
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM