bootstrap.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package app
  2. import (
  3. "fmt"
  4. "gin-pathway/internal/api/v1"
  5. "gin-pathway/internal/app/config"
  6. "gin-pathway/internal/app/initializer"
  7. "gin-pathway/internal/middleware"
  8. "github.com/gin-gonic/gin"
  9. log "github.com/sirupsen/logrus"
  10. )
  11. // Start 启动服务
  12. func Start() {
  13. err := config.LoadConfig()
  14. if err != nil {
  15. log.Error("配置文件加载错误: %v", err)
  16. return
  17. }
  18. err = InitializeAll()
  19. if err != nil {
  20. log.Error("模块初始化错误: %v", err)
  21. return
  22. }
  23. r := gin.New()
  24. r.Use(middleware.Logger())
  25. r.Use(middleware.Recovery())
  26. r.Use(middleware.ErrorHandler())
  27. v1.SetupRoutes(r, initializer.Engine)
  28. err = r.Run(fmt.Sprintf(":%d", config.Conf.App.Port))
  29. if err != nil {
  30. log.Error("服务启动错误: %v", err)
  31. return
  32. }
  33. }
  34. // InitializeAll 初始化所有模块
  35. func InitializeAll() error {
  36. err := initializer.InitializeLogger()
  37. if err != nil {
  38. return fmt.Errorf("日志初始化错误: %v", err)
  39. }
  40. err = initializer.InitializeDB()
  41. if err != nil {
  42. return fmt.Errorf("MySQL初始化错误: %v", err)
  43. }
  44. err = initializer.InitializeRedis()
  45. if err != nil {
  46. return fmt.Errorf("redis初始化错误: %v", err)
  47. }
  48. return nil
  49. }