import (
"fmt"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
)
func InitViper() {
//解析配置文件path
config := ""
var sys_config Config //配置文件结构体
v := viper.New() //新建viper对象
v.SetConfigFile(config) //viper对象的读取文件
v.SetConfigtType("yaml") //viper对象读取的文件类型
err := v.ReadInConfig()
if err != nil {
panic(fmt.Errorf("Fatal error config file: %s \n", err))
}
//对配置文件进行改写
// v.Get(key)
// v.Set(key, value)
v.WriteConfig() //将改写后的内容同步到配置文件中
v.WatchConfig() //监听配置文件的改动
v.OnConfigChange(func(e fsnotify.Event) {
fmt.Println("config file changed:", e.Name)
if err := v.Unmarshal(&sys_config); err != nil {
fmt.Println(err)
}
})
//将读到的东西解析到配置文件结构体中
if err := v.Unmarshal(&sys_config); err != nil {
fmt.Println(err)
}
}
golang_配置文件读取
于 2023-11-08 09:10:33 首次发布