viper读取配置文件
//方法一 func readConfig1(path, filename, filetype string) interface{} { viper.AddConfigPath(path) viper.SetConfigFile(filename) viper.SetConfigType(filetype) err := viper.ReadInConfig() if err != nil { panic(err) fmt.Println("Fatal error config file: %s \n", err) } res:= viper.AllSettings() return res } //方法二 func readConfig(filename string) interface{} { content, err := ioutil.ReadFile(filename) // just pass the file name if err != nil { fmt.Println(err) } viper.ReadConfig(bytes.NewBuffer(content)) viper.SetConfigType("properties") res:= viper.AllSettings() return res }
注意:第一次读取文件之后,第二次指定路径的时候,是在指定路径append,并不是直接切换路径,所以如果要做配置对比,建议使用方法二