1、安装依赖
go get gopkg.in/yaml.v2
2、添加配置文件config.yaml
redis:
port: 3306
user: redis
mysql:
userName: root
passWord: mysql
3、编写go代码读取配置文件数据
注意:和yaml文件数据对应用来存储yaml数据的结构体内的字段首字母大写,否则经过 yaml.Unmarshal 转换后,无法通过 结构体名称.字段名 获取数据。
package main
import (
"fmt"
"gopkg.in/yaml.v2"
"os"
)
type conf struct {
Redis struct{
Port int64 `yaml:"port"`
User string `yaml:"user"`
} `yaml:"redis"`
Mysql struct {
Username string `yaml:"userName"`
Password string `yaml:"passWord"`
} `yaml:"mysql"`
}
var ConfigData *conf
func loadConfig() error {
config := new(conf)
yamlFile,err := os.ReadFile("D:\\goland\\project\\src\\test\\2023\\2023-3-14\\config.yaml")
if err != nil {
return err
}
err = yaml.Unmarshal(yamlFile, config)
if err != nil {
return err
}
ConfigData = config
return nil
}
func main() {
err := loadConfig()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(ConfigData.Redis)
fmt.Println("-----------------")
fmt.Println(ConfigData.Mysql)
}
结果
{3306 redis}
-----------------
{root mysql}