viperconfig.go 862 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // 配置文件操作接口
  2. // 秒寻科技
  3. // 2024-01-09
  4. // 周涛
  5. package util
  6. import (
  7. "fmt"
  8. "github.com/fsnotify/fsnotify"
  9. "github.com/spf13/viper"
  10. )
  11. // viper实例
  12. var viperConfig *viper.Viper
  13. // 初始化配置文件
  14. func ViperConfigInit(filePath string, fileName string) {
  15. viperConfig = viper.New() //新建一个对象
  16. viperConfig.AddConfigPath(filePath) //文件路径,相对路径
  17. viperConfig.SetConfigName(fileName) //文件名
  18. viperConfig.SetConfigType("toml") //文件扩展名
  19. // 将配置文件读取到viper中
  20. if err := viperConfig.ReadInConfig(); err != nil {
  21. panic(err)
  22. }
  23. //监听配置文件的变化
  24. viperConfig.WatchConfig()
  25. viperConfig.OnConfigChange(func(e fsnotify.Event) {
  26. fmt.Println("Config file changed:", e.Name)
  27. })
  28. }
  29. // 获得viper对象
  30. func GetViper() *viper.Viper {
  31. return viperConfig
  32. }