Golang 程序读取yaml配置文件

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("./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(ConfigData.Mysql)
}

// {3309 redis}
// {root mysql}

  

posted @ 2022-08-08 18:22  青灯浊酒  阅读(781)  评论(0编辑  收藏  举报