更新时间: 2023-03-03 02:40:39#golang viper库viper 是一个配置解决方案,拥有丰富的特性: 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新的配置; 从环境变量、命令行选项和io.Reader中读取配置; 从远程配置系统中读取和监听修改,如 etcd/Consul; 代码逻辑中显示设置键值。 https://darjun.github.io/2020/01/18/godailylib/viper/ var ( v *viper.Viper configFile = flag.String("f", "xxx.yml", "set config file which viper will loading.") ) func init() { flag.Parse() x, err := config.New(*configFile) // viper.new() addconfigpath if err != nil { panic("failed to load config file: " + err.Error()) } v = x } func Get() *viper.Viper { return v } #监听文件修改只需要调用viper.WatchConfig,viper 会自动监听配置修改。如果有修改,重新加载的配置。 viper 使用fsnotify这个库来实现监听文件修改的功能。