70 lines
2.0 KiB
Go
70 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/flipped-aurora/gin-vue-admin/server/cmd"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/core"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/initialize"
|
|
"github.com/fox/fox/ksync"
|
|
"github.com/fox/fox/log"
|
|
_ "go.uber.org/automaxprocs"
|
|
"go.uber.org/zap"
|
|
"time"
|
|
)
|
|
|
|
//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
|
|
|
|
// 这部分 @Tag 设置用于排序, 需要排序的接口请按照下面的格式添加
|
|
// swag init 对 @Tag 只会从入口文件解析, 默认 main.go
|
|
// 也可通过 --generalInfo flag 指定其他文件
|
|
// @Tag.Name Base
|
|
// @Tag.Name SysUser
|
|
// @Tag.Description 用户
|
|
|
|
// @title Gin-Vue-Admin Swagger API接口文档
|
|
// @version v2.8.2
|
|
// @description 使用gin+vue进行极速开发的全栈开发基础平台
|
|
// @securityDefinitions.apikey ApiKeyAuth
|
|
// @in header
|
|
// @name x-token
|
|
// @BasePath /
|
|
func main() {
|
|
tm, err := time.Parse("20060102150405", BuildDate)
|
|
if err == nil {
|
|
BuildDate = tm.Format("2006-01-02 15:04:05")
|
|
}
|
|
ksync.RunSafe(func() {
|
|
cmd.Run(GitBranch, GitCommit, BuildDate)
|
|
}, func() { log.ErrorF("reset run") })
|
|
|
|
// 初始化系统
|
|
initializeSystem()
|
|
// 运行服务器
|
|
core.RunServer()
|
|
}
|
|
|
|
var (
|
|
GitCommit = "unknown"
|
|
GitBranch = "unknown"
|
|
BuildDate = "unknown"
|
|
)
|
|
|
|
// initializeSystem 初始化系统所有组件
|
|
// 提取为单独函数以便于系统重载时调用
|
|
func initializeSystem() {
|
|
global.GVA_VP = core.Viper() // 初始化Viper
|
|
initialize.OtherInit()
|
|
global.GVA_LOG = core.Zap() // 初始化zap日志库
|
|
zap.ReplaceGlobals(global.GVA_LOG)
|
|
global.GVA_DB = initialize.Gorm() // gorm连接数据库
|
|
initialize.Timer()
|
|
initialize.DBList()
|
|
initialize.SetupHandlers() // 注册全局函数
|
|
if global.GVA_DB != nil {
|
|
initialize.RegisterTables() // 初始化表
|
|
}
|
|
}
|