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