main.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "github.com/runningwater/gohub/bootstrap"
  7. appConfig "github.com/runningwater/gohub/config"
  8. "github.com/runningwater/gohub/pkg/config"
  9. )
  10. func init() {
  11. // 加载 config 目录下的配置信息
  12. appConfig.Initialize()
  13. }
  14. func main() {
  15. // 配置初始化,依赖命令行 --env 参数
  16. var env string
  17. flag.StringVar(&env, "env", "", "加载.env 文件,如 --env=local, 加载的是 .env.local 文件")
  18. flag.Parse()
  19. config.InitConfig(env)
  20. // 初始化 Logger
  21. bootstrap.SetupLogger()
  22. // 初始化 DB
  23. // 注意: 初始化 DB 前应该先初始化 logger
  24. bootstrap.SetupDB()
  25. // 初始化 Redis
  26. bootstrap.SetupRedis()
  27. // gin 框架设置为发布模式,线上环境需要设置
  28. gin.SetMode(gin.ReleaseMode)
  29. // Gin 框架初始化
  30. r := gin.New()
  31. // 初始化路由绑定
  32. bootstrap.SetupRoute(r)
  33. // 测试发送短信
  34. // verifycode.NewVerifyCode().SendSMS("15968875425")
  35. // 启动 HTTP 服务,监听在我们指定的端口上
  36. err := r.Run(":" + config.Get("app.port"))
  37. if err != nil {
  38. fmt.Println("启动失败", err.Error())
  39. }
  40. }