目录

使用 Viper 读取配置文件

安装

go get github.com/spf13/viper

编写配置文件

新建config.yml,填入配置信息,如下:

yml 复制代码
app:
	name: MyApp
	port: :3000

读取并初始化配置文件

新建config.go文件。

定义配置信息的结构

如下:

go 复制代码
// 定义配置结构
type Config struct {
	// App 包含应用程序的基本配置
	App struct {
		Name string // 应用程序名称
		Port string // 应用程序监听端口
	}
}
编写初始化配置的方法

如下:

go 复制代码
// 声明配置实例
var AppConfig *Config

// 从 config.yml 文件中读取配置并解析到 AppConfig 结构体中
func InitConfig() {
	// 设置配置文件名、文件类型、文件路径
	viper.SetConfigName("config")
	viper.SetConfigType("yml")
	viper.AddConfigPath("./config")

	// 读取配置文件
	if err := viper.ReadInConfig(); err != nil {
		log.Fatalf("Failed to read config file: %v", err)
	}

	// 初始化配置结构体
	AppConfig = &Config{}

	// 将配置解析到结构体中
	if err := viper.Unmarshal(AppConfig); err != nil {
		log.Fatalf("Failed to unmarshal config: %v", err)
	}
}

测试读取结果

main.go中调用InitConfig方法,如下

go 复制代码
package main

import (
	"log"
	"simple-blog/config"
)

func main() {
	// 初始化配置
	config.InitConfig()

	// 读取配置文件并打印
	log.Printf("Config loaded: %+v", config.AppConfig.App.Port)
}

如果读取成功则控制台会打印出3000端口。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
〆、风神23 分钟前
Spring Boot 整合 Lock4j + Redisson 实现分布式锁实战
spring boot·分布式·后端
Asthenia041226 分钟前
Select、Poll、Epoll 详细分析与面试深度剖析/C代码详解
后端
烛阴30 分钟前
Node.js中必备的中间件大全:提升性能、安全与开发效率的秘密武器
javascript·后端·express
南雨北斗34 分钟前
WMware虚拟机下载方法(2025年4月)
后端
朝阳5811 小时前
Rust项目GPG签名配置指南
开发语言·后端·rust
微网兔子1 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
朝阳5811 小时前
Rust实现高性能目录扫描工具ll的技术解析
开发语言·后端·rust
小希爸爸1 小时前
2、中医基础入门和养生
前端·后端
盖世英雄酱581362 小时前
分布式ID所有生成方案
java·后端
小希爸爸2 小时前
1、中医基础入门和养生
前端·后端