main.go 1.2 KB

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