package main import ( "fmt" "log" "newaterobot-process/config" "newaterobot-process/database" "newaterobot-process/routes" "newaterobot-process/utils" ) func main() { // 初始化日志组件 utils.InitLogger() utils.Infof("Starting application...") // 加载配置文件 err := config.LoadConfig() if err != nil { log.Fatalf("Failed to load config: %v", err) } utils.Infof("Config loaded successfully") utils.SetJWTSecret() // 初始化数据库 err = database.InitDB() if err != nil { log.Fatalf("Failed to initialize database: %v", err) } utils.Infof("Database initialized successfully") // 初始化Redis err = database.InitRedis() if err != nil { log.Fatalf("Failed to initialize Redis: %v", err) } utils.Infof("Redis initialized successfully") // 自动迁移数据库表 // err = database.DB.AutoMigrate(&entity.User{}) // if err != nil { // log.Fatalf("Failed to auto migrate database tables: %v", err) // } // utils.Infof("Database tables migrated successfully") // 初始化路由 r := routes.InitRouter() // 启动服务 port := config.GlobalConfig.Server.Port utils.Infof("Server starting on port %d", port) err = r.Run(fmt.Sprintf(":%d", port)) if err != nil { log.Fatalf("Failed to start server: %v", err) } } // 关闭程序时释放资源 func init() { // 确保在程序退出时关闭数据库连接 defer func() { err := database.CloseRedis() if err != nil { log.Printf("Failed to close Redis: %v", err) } }() }