app_env.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package config
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. )
  6. type Server struct {
  7. JWT *JWT `mapstructure:"jwt" json:"jwt" yaml:"jwt"`
  8. Mysql *Mysql `mapstructure:"mysql" json:"mysql" yaml:"mysql"`
  9. Zap *Zap `mapstructure:"zap" json:"zap" yaml:"zap"`
  10. Redis *Redis `mapstructure:"redis" json:"redis" yaml:"redis"`
  11. Exchange *Exchange `mapstructure:"exchange" json:"exchange" yaml:"exchange"`
  12. }
  13. var envConfig *Server
  14. func EnvConf() *Server {
  15. if envConfig == nil {
  16. readEnvConf()
  17. }
  18. return envConfig
  19. }
  20. func readEnvConf() {
  21. envConfigFile := GetConfigFileByMod(AppConf().Mod)
  22. fmt.Println(fmt.Sprintf("------------->>配置文件%s<<-----------", envConfigFile))
  23. vp := viper.New()
  24. vp.SetConfigFile(envConfigFile)
  25. vp.SetConfigType("json")
  26. if err := vp.ReadInConfig(); err != nil {
  27. fmt.Println(fmt.Sprintf("------------->>%s读取失败<<-----------", envConfigFile))
  28. setDefaultEnvConfig(vp)
  29. } else {
  30. fmt.Println(fmt.Sprintf("------------->>配置文件%s读取成功<<-----------", envConfigFile))
  31. }
  32. if err := vp.Unmarshal(&envConfig); err != nil {
  33. panic(err)
  34. }
  35. }