一、下载viper包
go get github.com/spf13/viper
二、测试项目文件包结构
src/test/main.go main文件
src/test/config/config.yaml config包下的配置文件
src/test/utils/config.go utils包下的配置文件读取
三、代码示例
1.src/test/config/config.yaml 配置文件配置
mysql:
user: root
host: 127.0.0.1
port: 3306
dbname: test
passwd: 123456
2.src/test/utils/config.go 读取配置工具
package utils
import (
"fmt"
"github.com/spf13/viper"
)
// Config 配置数据结构体
type Config struct {
Mysql struct{
User string
Host string
Port string
Dbname string
Passwd string
}
}
// 配置数据变量
var ConfigData *Config
// 引入此包时,则读取配置数据并赋给 configData
func init() {
//导入配置文件
viper.SetConfigType("yaml")
viper.SetConfigFile("./config/config.yaml")
//读取配置文件
err := viper.ReadInConfig()
if err != nil {
fmt.Println("读取不到配置文件:",err.Error())
}
err = viper.Unmarshal(&ConfigData)
if err != nil {
fmt.Println("导出数据有误",err.Error())
}
}
// GetCOnfigData 返回配置数据方法
func GetCOnfigData() *Config {
return ConfigData
}
3.src/test/main.go 在应用启动时,就拿到配置数据
package main
import (
"fmt"
"go_code/test/utils"
)
func main() {
data := utils.GetCOnfigData()
fmt.Println(data.Mysql.Host)
}