最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2024年07月22日 08:38:00   作者:考慮考慮  
在項(xiàng)目開發(fā)中,需要把一些配置配置提取出來,方便配置和管理,可以使用Viper工具,Viper 是 Go 應(yīng)用程序的完整配置解決方案,也支持從環(huán)境變量中讀取,本文給大家介紹了go使用Viper管理配置文件的方法步驟,需要的朋友可以參考下

前言

在項(xiàng)目開發(fā)中,需要把一些配置配置提取出來,方便配置和管理,可以使用Viper工具,Viper 是 Go 應(yīng)用程序的完整配置解決方案,也支持從環(huán)境變量中讀取

viper使用

viper倉庫為

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

viper依賴安裝

使用以下命令安裝viper依賴

 go get github.com/spf13/viper

viper使用

(1)定義一個(gè)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")
    // 如果配置文件的名稱中沒有擴(kuò)展名,則需要配置此項(xiàng)
    viperConfig.SetConfigType("yml")
    // 配置文件名稱(無擴(kuò)展名)
    viperConfig.SetConfigName("app")
    if err := viperConfig.ReadInConfig(); err != nil {
       if _, ok := err.(viper.ConfigFileNotFoundError); ok {
          // 配置文件未找到錯(cuò)誤;如果需要可以忽略
          log.Println("配置文件沒找到")
       } else {
          // 配置文件被找到,但產(chǎn)生了另外的錯(cuò)誤
          log.Println("讀取文件異常:", err)
       }
    }
    var user User
    err := viperConfig.Unmarshal(&user)
    log.Println(user)
    log.Println("解析異常:", err)

}

將配置文件轉(zhuǎn)為對(duì)象,輸出結(jié)果為

(3)也可以不將配置文件轉(zhuǎn)換成類,直接使用鍵值取值

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")
    // 如果配置文件的名稱中沒有擴(kuò)展名,則需要配置此項(xiàng)
    viperConfig.SetConfigType("yml")
    // 配置文件名稱(無擴(kuò)展名)
    viperConfig.SetConfigName("app")
    if err := viperConfig.ReadInConfig(); err != nil {
       if _, ok := err.(viper.ConfigFileNotFoundError); ok {
          // 配置文件未找到錯(cuò)誤;如果需要可以忽略
          log.Println("配置文件沒找到")
       } else {
          // 配置文件被找到,但產(chǎn)生了另外的錯(cuò)誤
          log.Println("讀取文件異常:", err)
       }
    }
    log.Println("值為:", viperConfig.Get("app.name"))
    log.Println("值為:", viperConfig.Get("app.config"))

}

輸出結(jié)果為

viper寫入文件

在開發(fā)過程中,我們?nèi)绻胿iper寫入文件,可以使用

package main

import "github.com/spf13/viper"


func main() {
    viper.Set("app.test", "aaa1")
    //viper.WriteConfig()
    viper.WriteConfigAs("./config/app.yaml")

}

總結(jié)

viper是一個(gè)強(qiáng)大的工具類庫,可以使用其管理項(xiàng)目中的配置文件,不過go也有其他配置文件,根據(jù)自己上手程序和熟練程度而定

以上就是go使用Viper管理配置文件的方法步驟的詳細(xì)內(nèi)容,更多關(guān)于go Viper管理配置文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

弥勒县| 长海县| 泗水县| 民勤县| 公主岭市| 西宁市| 普兰店市| 合阳县| 凤山县| 靖宇县| 固始县| 林州市| 深水埗区| 南丰县| 招远市| 华阴市| 萨嘎县| 安福县| 全南县| 米易县| 化州市| 宝山区| 斗六市| 富阳市| 泽州县| 渭南市| 浠水县| 天全县| 潜山县| 昭苏县| 南和县| 徐水县| 资源县| 贵州省| 茶陵县| 西昌市| 浮梁县| 茌平县| 通化县| 东至县| 宁明县|