安装
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端口。