第一讲 从main.go入手-2022-01-10

2022-01-10  本文已影响0人  flashmind008
文件位置: project/main.go
文件作用:入口文件,执行main函数
package main

import (
    "github.com/flipped-aurora/gin-vue-admin/server/core" // 核心文件包,负责核心组件(zap, viper, server)等的初始化
    "github.com/flipped-aurora/gin-vue-admin/server/global" // 全局对象包,包括数据库连接实例、缓存实例、配置参数等等
    "github.com/flipped-aurora/gin-vue-admin/server/initialize" // 初始化包,初始化gorm、插件、缓存、定时器和验证器等
)

//go:generate go env -w GO111MODULE=on
//go:generate go env -w GOPROXY=https://goproxy.cn,direct
//go:generate go mod tidy
//go:generate go mod download

// @title Swagger Example API
// @version 0.0.1
// @description This is a sample Server pets
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name x-token
// @BasePath /
func main() {
    global.GVA_VP = core.Viper()      // 初始化Viper
    global.GVA_LOG = core.Zap()       // 初始化zap日志库
    global.GVA_DB = initialize.Gorm() // gorm连接数据库
    initialize.Timer()
    initialize.DBList()
    if global.GVA_DB != nil {
        initialize.RegisterTables(global.GVA_DB) // 初始化表
        // 程序结束前关闭数据库链接
        db, _ := global.GVA_DB.DB()
        defer db.Close()
    }
    core.RunWindowsServer()
}

“go:generate” 是执行go generate命令行命令的注释,当你在项目根目录或针对某个文件去执行时,go会扫描并执行所有标注“go generate”注释的后面的代码,仅限于go编译器可以执行的代码,shell代码无法执行

// @title Swagger Example API
// @version 0.0.1
// @description This is a sample Server pets
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name x-token
// @BasePath /

Swagger API文档注释,

上一篇下一篇

猜你喜欢

热点阅读