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 configured for running network configure for packages distro deforestation solutions some for line configuration for命令