beego-yaml-viper 配置数据库连接

定义config.yaml文件

 

mysql:
  driver: mysql
  user: root
  password: root
  host: 127.0.0.1
  port: 8889
  database: 2204a
redis:
  addr: "127.0.0.1:6379"
  password: ""
  db: 0

 

在main.go文件中

package main

import (
	"github.com/beego/beego/v2/client/orm"
	beego "github.com/beego/beego/v2/server/web"
	"github.com/go-redis/redis"
	_ "github.com/go-sql-driver/mysql"
	"github.com/siddontang/go/log"
	"github.com/spf13/viper"
	_ "house/routers"
)

var redisClient *redis.Client

func init() {
	viper.SetConfigFile("conf/config.yaml")
	err := viper.ReadInConfig()
	if err != nil {
		log.Fatalf("配置文件读取失败 %s", err)
	}

	orm.RegisterDriver("mysql", orm.DRMySQL)

	// 从配置文件中获取数据库连接信息
	dbDriver := viper.GetString("mysql.driver")
	dbUser := viper.GetString("mysql.user")
	dbPassword := viper.GetString("mysql.password")
	dbHost := viper.GetString("mysql.host")
	dbPort := viper.GetString("mysql.port")
	dbDatabase := viper.GetString("mysql.database")
	// 构建数据库连接字符串
	orm.RegisterDataBase("default", dbDriver, dbUser+":"+dbPassword+"@tcp("+dbHost+":"+dbPort+")/"+dbDatabase+"?charset=utf8")
	/*
		配置redis
	*/
	redisAddr := viper.GetString("redis.addr")
	redisPassword := viper.GetString("redis.password")
	redisDB := viper.GetInt("redis.db")
	// 建立 Redis 连接
	redisClient = redis.NewClient(&redis.Options{
		Addr:     redisAddr,
		Password: redisPassword,
		DB:       redisDB,
	})
	redisClient.Set("hello", "hello", 0)
}

func main() {
	beego.Run()
}

  

posted @ 2024-06-05 10:08  青烟绕指柔  阅读(5)  评论(0编辑  收藏  举报