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"))
}
