unmar.go 635 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. "log"
  6. "time"
  7. )
  8. type database struct {
  9. Server string
  10. Ports []int
  11. }
  12. type config struct {
  13. Database database
  14. }
  15. func main() {
  16. viper.SetConfigName("example")
  17. viper.SetConfigType("toml")
  18. viper.AddConfigPath("../")
  19. if err := viper.ReadInConfig(); err != nil {
  20. log.Fatal("read config failed,err:", err)
  21. }
  22. var c config
  23. viper.Unmarshal(&c)
  24. fmt.Println(c.Database.Ports[1])
  25. viper.WatchConfig()
  26. fmt.Println("redis port before sleep: ", viper.Get("database.server"))
  27. time.Sleep(time.Second * 10)
  28. fmt.Println("redis port after sleep: ", viper.Get("database.server"))
  29. }