package config import ( "github.com/spf13/viper" "log" ) type OfficeAccount struct { AppID string AppSecret string RedisAddr string `env:"redis_addr"` } type Configuration struct { OfficeAccount } func Get() *Configuration { viper.SetConfigName("config") viper.SetConfigType("yml") viper.AddConfigPath(".") err := viper.ReadInConfig() if err != nil { log.Fatalf("read config failed: %v", err) } var c Configuration err = viper.Unmarshal(&c) if err != nil { return nil } return &c }
配置文件 config.yml
officeAccount: appId: wx64xxxxef3fd6 appSecret: ce580axxxx8a46a8b redisAddr: localhost:6379
入口文件
func main() { conf := config.Get() }