50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
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)
|
|
}
|
|
}
|