package main import ( "fmt" "log" "backend/services/user-svc/internal/config" "backend/services/user-svc/internal/grpcserver" "backend/services/user-svc/internal/repository" "backend/services/user-svc/internal/service" "backend/shared/pkg/database" "backend/shared/pkg/logger" ) func main() { // 加载配置 cfg, err := config.Load() if err != nil { log.Fatalf("Failed to load config: %v", err) } // 连接数据库 db, err := database.NewPostgresDB(database.PostgresConfig{ Host: cfg.Database.Host, Port: cfg.Database.Port, User: cfg.Database.User, Password: cfg.Database.Password, DBName: cfg.Database.DBName, SSLMode: cfg.Database.SSLMode, }) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer db.Close() // 初始化仓库 repo := repository.NewUserRepository(db.DB) // 初始化服务 userService := service.NewUserService(repo) // 启动 gRPC 服务器 serverAddr := fmt.Sprintf(":%d", cfg.Server.Port) logger.Info("User service starting on %s", serverAddr) if err := grpcserver.Start(userService, cfg.Server.Port); err != nil { log.Fatalf("Failed to start server: %v", err) } }