package config import ( "fmt" "github.com/spf13/viper" ) type App struct { Mod string `mapstructure:"mod" json:"mod" yaml:"mod"` ApiAddr int `mapstructure:"api_addr" json:"api_addr" yaml:"api_addr"` // gin 端口值 JobAddr int `mapstructure:"job_addr" json:"job_addr" yaml:"job_addr"` // gin 端口值 RouterPrefix string `mapstructure:"router_prefix" json:"router_prefix" yaml:"router_prefix"` } var appConf *App func AppConf() *App { if appConf == nil { readAppConf() } return appConf } func readAppConf() { vp := viper.New() vp.SetConfigFile(ConfigAppFile) setDefaultAppConfig(vp) if err := vp.ReadInConfig(); err != nil { fmt.Println(fmt.Sprintf("------------->>配置文件:%s读取失败, 使用:task config初始化配置文件<<-----------", ConfigAppFile)) } if err := vp.Unmarshal(&appConf); err != nil { panic(err) } }