app_env.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. File *File `mapstructure:"file" json:"file" yaml:"file"`
  13. }
  14. var envConfig *Server
  15. func EnvConf() *Server {
  16. if envConfig == nil {
  17. readEnvConf()
  18. }
  19. return envConfig
  20. }
  21. func readEnvConf() {
  22. envConfigFile := GetConfigFileByMod(AppConf().Mod)
  23. fmt.Println(fmt.Sprintf("------------->>配置文件%s<<-----------", envConfigFile))
  24. vp := viper.New()
  25. vp.SetConfigFile(envConfigFile)
  26. vp.SetConfigType("json")
  27. if err := vp.ReadInConfig(); err != nil {
  28. fmt.Println(fmt.Sprintf("------------->>%s读取失败<<-----------", envConfigFile))
  29. setDefaultEnvConfig(vp)
  30. } else {
  31. fmt.Println(fmt.Sprintf("------------->>配置文件%s读取成功<<-----------", envConfigFile))
  32. }
  33. if err := vp.Unmarshal(&envConfig); err != nil {
  34. panic(err)
  35. }
  36. }