当前位置: 首页 > article >正文

go 加载yaml配置文件

go 加载yaml配置文件

  • config.yaml文件
mysql:
    url: 127.0.0.1
    userName: root
    password: root
    dbname: test
    port: 3306
  • 准备结构体
// 用于接收yaml配置参数的struct结构体
type conf struct {
	Mysql Mysql `yaml:"mysql"`
}

type Mysql struct {
	Url      string `yaml:"url"`
	UserName string `yaml:"userName"`
	Password string `yaml:"password"`
	DbName   string `yaml:"dbname"`
	Port     string `yaml:"port"`
}
  • 加载yaml
func loadConfig() *conf {
	config := new(conf)
	yamlFile, err := os.ReadFile("./config/config.yaml")

	if err != nil {
		fmt.Println(err.Error())
	}
	err = yaml.Unmarshal(yamlFile, config)
	if err != nil {
		fmt.Println(err.Error())
	}
	return config
}
  • 使用
// 获取yaml配置参数
conf := loadConfig()
// 将yaml参数拼接成连接数据库的url
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
	conf.Mysql.UserName,
	conf.Mysql.Password,
	conf.Mysql.Url,
	conf.Mysql.Port,
	conf.Mysql.DbName,
)

http://www.kler.cn/a/587160.html

相关文章:

  • 成为Python砖家(7): 使用miniforge管理Python版本
  • STM32 HAL库实战:高效整合DMA与ADC开发指南
  • Unity学习日志番外:简易行为树
  • 金融时间序列分析(Yahoo Finance API实战)
  • Java构造方法详解:从入门到实战
  • 特殊 IP 地址
  • Dijkstra算法
  • 二叉树的层序遍历(102)
  • 平板作为笔记本副屏使用spacedesk
  • Java入职篇(5)—— IDEA快捷键
  • 计算机毕业设计:基于Android和SNS的音乐星球软件
  • rv1106上libwebsockets的编译
  • 阿里百炼Spring AI Alibaba
  • PECL(Positive Emitter-Coupled Logic)电平详解
  • 【AI】内容生成式AI(AIGC)的深度分析与扩展
  • PCDN 与边缘计算的结合:未来内容分发的新趋势
  • iOS应用程序开发(图片处理器)
  • 【前端基础】2、HTML的元素(基础说明)
  • 【Linux网络】HTTPS
  • 3.14-信号