package main import ( "gorm.io/driver/mysql" "gorm.io/gorm" "level_go/internal/api" "level_go/internal/router" "level_go/internal/service" "level_go/pkg/config" "log" ) // main 是服务启动入口,负责完成配置加载、数据库连接、依赖组装和 HTTP 路由启动。 func main() { // 初始化配置文件,后续数据库 DSN 和服务端口都从全局配置中读取。 config.InitConfig() // 使用配置中的 MySQL DSN 建立 GORM 连接;连接失败时直接终止进程,避免服务在不可用状态下启动。 dsn := config.GetDSN() db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { log.Fatal("数据库连接失败:", err) } // 依赖注入:Service 持有数据库连接,Handler 持有对应 Service。 commonSrv := &service.CommonService{DB: db} stockSrv := &service.StockService{DB: db} limitBoardSrv := &service.LimitBoardService{DB: db} commonHandler := &api.CommonHandler{Service: commonSrv} stockHandler := &api.StockHandler{Service: stockSrv} limitBoardHandler := api.NewLimitBoardHandler(limitBoardSrv) // 创建 Gin 路由并启动 HTTP 服务。 r := router.NewRouter(commonHandler, stockHandler, limitBoardHandler) port := config.GetServerPort() log.Printf("服务启动于端口 %s", port) r.Run(port) }