package main import ( "fmt" "log" "speedtest/config" "speedtest/internal/db" "speedtest/internal/store" "speedtest/internal/web" ) func main() { // 1. Load configuration cfg, err := config.LoadConfig() if err != nil { log.Fatalf("加载配置失败: %v", err) } fmt.Println("配置加载成功") // 2. Initialize database database, err := db.InitDB(cfg.Database) if err != nil { log.Fatalf("数据库初始化失败: %v", err) } fmt.Println("数据库初始化成功") // 3. Create Store layer stores := store.NewStores(database) // 4. Start Web server webServer, err := web.NewWebServer(*cfg, stores) if err != nil { log.Fatalf("Web 服务初始化失败: %v", err) } fmt.Printf("Web 服务启动在 %s\n", cfg.Web.Addr) go func() { if err := webServer.Start(); err != nil { log.Fatalf("Web 服务启动失败: %v", err) } }() fmt.Println("SpeedTest 网速测试服务启动完成") select {} // Block main goroutine }