-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
48 lines (39 loc) · 1.12 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"flag"
"fmt"
"github.com/gin-gonic/gin"
"go-erp-api/bootstrap"
btsConfig "go-erp-api/config"
"go-erp-api/pkg/config"
)
func init() {
// 加载 config 目录下的配置信息
btsConfig.Initialize()
}
func main() {
// 配置初始化,依赖命令行 --env 参数
var env string
flag.StringVar(&env, "env", "", "加载 .env 文件,如 --env=testing 加载的是 .env.testing 文件")
flag.Parse()
config.InitConfig(env)
// 初始化 Logger
bootstrap.SetupLogger()
// 设置 gin 的运行模式,支持 debug, release, test
// release 会屏蔽调试信息,官方建议生产环境中使用
// 非 release 模式 gin 终端打印太多信息,干扰到我们程序中的 Log
// 故此设置为 release,有特殊情况手动改为 debug 即可
gin.SetMode(gin.ReleaseMode)
// new 一个 Gin Engine 实例
router := gin.New()
// 初始化 DB
bootstrap.SetupDB()
// 初始化路由绑定
bootstrap.SetupRoute(router)
// 运行服务
err := router.Run(":" + config.Get("app.port"))
if err != nil {
// 错误处理, 端口占用了或其他错误信息
fmt.Println(err.Error())
}
}