zoukankan      html  css  js  c++  java
  • go viper 库

    参考链接:https://studygolang.com/articles/26215?fr=sidebar

    viper 是一个配置解决方案,拥有丰富的特性:

    • 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件;
    • 可以设置监听配置文件的修改,修改时自动加载新的配置;
    • 从环境变量、命令行选项和io.Reader中读取配置;
    • 从远程配置系统中读取和监听修改,如 etcd/Consul;
    • 代码逻辑中显示设置键值。

    demo:

    package main
    
    import (
      "fmt"
      "log"
    
      "github.com/spf13/viper"
    )
    
    func main() {
      viper.SetConfigName("config")
      viper.SetConfigType("toml")
      viper.AddConfigPath(".")
      viper.SetDefault("redis.port", 6381)
      err := viper.ReadInConfig()
      if err != nil {
        log.Fatal("read config failed: %v", err)
      }
    
      fmt.Println(viper.Get("app_name"))
      fmt.Println(viper.Get("log_level"))
    
      fmt.Println("mysql ip: ", viper.Get("mysql.ip"))
      fmt.Println("mysql port: ", viper.Get("mysql.port"))
      fmt.Println("mysql user: ", viper.Get("mysql.user"))
      fmt.Println("mysql password: ", viper.Get("mysql.password"))
      fmt.Println("mysql database: ", viper.Get("mysql.database"))
    
      fmt.Println("redis ip: ", viper.Get("redis.ip"))
      fmt.Println("redis port: ", viper.Get("redis.port"))
    }

    配置文件:(toml格式)

    app_name = "awesome web"
    
    # possible values: DEBUG, INFO, WARNING, ERROR, FATAL
    log_level = "DEBUG"
    
    [mysql]
    ip = "127.0.0.1"
    port = 3306
    user = "dj"
    password = 123456
    database = "awesome"
    
    [redis]
    ip = "127.0.0.1"
    port = 7381
  • 相关阅读:
    h264 流、帧结构
    H264 帧结构分析、帧判断
    sigaction
    sigaction 用法实例
    sigaction函数的使用
    linux c 之signal 和sigaction区别
    linux 信号signal和sigaction理解
    Hamcrest使用
    Junit4中的新断言assertThat的使用方法
    Hamcrest Tutorial
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/15338272.html
Copyright © 2011-2022 走看看