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

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,
)

相关文章:

  • 3-1 写分享报告
  • 鸿蒙编译框架插件HvigorPlugin接口的用法介绍
  • zuul路由转发功能的核心流程
  • 【docker系】docker安装数据迁移
  • 【含文档+PPT+源码】基于Django框架的乡村绿色农产品交易平台的设计与实现
  • 论文分享:PL-ALF框架实现无人机低纹理环境自主飞行
  • KICK第五课:Mac 系统下安装 Xcode 或 Clang
  • BGP路由聚合
  • 开发小运维-搭建rocketmq集群
  • OpenWebUI项目调研对比
  • Windows远程桌面黑屏怎么办?
  • 如何限制非法的WIFI连接操作以及网络端口使用?
  • 【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中
  • 六十天前端强化训练之第十六天JSX语法深度解析与应用实践指南
  • 笔记:基于springboot+ShardingSphere-jdbc5.0.0的分库分表(偏yml配置)
  • 24.pocsuite3:开源的远程漏洞测试框架
  • X86 RouterOS 7.18 设置笔记六:端口映射(IPv4、IPv6)及回流问题
  • 高级java每日一道面试题-2025年2月25日-框架篇[Mybatis篇]-Mybatis是如何进行分页的?分页插件的原理是什么?
  • RK3588 Linux实例应用(4)——KEY(设备介绍与设备树介绍)
  • 玩转python:通俗易懂掌握高级数据结构:collections模块之defaultdict
  • 澎湃思想周报|欧洲胜利日之思;教育监控与学生隐私权争议
  • 外交部就习近平主席将出席中拉论坛第四届部长级会议开幕式介绍情况
  • 不到1小时就能速发证件?央媒曝光健康证办理乱象
  • 会计江湖|年报披露关注什么:独董给出的“信号”
  • 人民日报刊文:守护“技术进步须服务于人性温暖”的文明底线
  • 习近平会见古巴国家主席迪亚斯-卡内尔