Files

51 lines
1.1 KiB
Go

package main
import (
"fmt"
"log"
"user-svc/internal/config"
"user-svc/internal/grpcserver"
"user-svc/internal/repository"
"user-svc/internal/service"
"shared/pkg/database"
"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)
}
}