40 lines
966 B
Go
40 lines
966 B
Go
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"
|
|
)
|
|
|
|
func main() {
|
|
// 1. 初始化配置
|
|
config.InitConfig()
|
|
|
|
// 2. 使用配置中的 DSN 连接数据库
|
|
dsn := config.GetDSN()
|
|
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
if err != nil {
|
|
log.Fatal("数据库连接失败:", err)
|
|
}
|
|
|
|
// 3. 依赖注入
|
|
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)
|
|
|
|
// 4. 启动路由
|
|
r := router.NewRouter(commonHandler, stockHandler, limitBoardHandler)
|
|
|
|
port := config.GetServerPort()
|
|
log.Printf("服务启动于端口 %s", port)
|
|
r.Run(port)
|
|
}
|