golang加载配置文件之yaml配置

363 阅读1分钟

加载yaml配置需要依赖第三方包,但用起来简单方便

下载文件:go get gopkg.in/yaml.v2

config.yaml

App_Name: my_project
Env: [dev, test, product]

App:
  Path: /www/root

Mysql:
  Host: 127.0.0.1
  Name: root
  Password: 123456
  Port: 3306

main.go

package main

import (
   "fmt"
   "gopkg.in/yaml.v2"
   "log"
   "os"
)

type Config struct {
   AppName string   `yaml:"App_Name"`
   Env     []string `yaml:"Env"`
   App     *App     `yaml:"App"`
   Mysql   *Mysql   `yaml:"Mysql"`
}

type App struct {
   Path string `yaml:"Path"`
}

type Mysql struct {
   Host     string `yaml:"Host"`
   Name     string `yaml:"Name"`
   Password string `yaml:"Password"`
   Port     int16  `yaml:"Port"`
}

func main() {
    file, err := os.ReadFile("./config.yaml")
    if err != nil {
       log.Fatal(err)
       return
    }
    var c Config
    err = yaml.Unmarshal(file, &c)
    if err != nil {
       log.Fatal(err)
       return
    }
    fmt.Printf("%s, %v, %v, %v", c.AppName, c.Env, c.App, c.Mysql)
}