1. support several formats of configuration
config.yaml
name: 'bobby' port: 12334
main.go to quick start
package main import ( "fmt" "github.com/spf13/viper" ) type ServerConfig struct { ServiceName string `mapstructure:"name"` // using mapstructure to support other forms of config & using mapstructure pkg Port int `mapstructure:"port"` } func main() { v := viper.New() // return a Viper v.SetConfigFile("viper_test/ch01/config.yaml") //v.SetConfigFile("config.yaml") if err := v.ReadInConfig(); err != nil { panic(err) } sc := ServerConfig{} if err := v.Unmarshal(&sc); err != nil { // unserilaize to Object panic(err) } fmt.Println(sc) fmt.Println(v.Get("name")) }
- configuration solution Viper for Goconfiguration solution viper for 语言viper go mysql configuration information for application line configuration for variant configuration for currently demoapplication line configuration for configure for packages distro configured for running network configurations reload live go line configuration for命令