# Service Context - 服务上下文 ## 📁 文件结构 ``` internal/svc/ └── servicecontext.go # 服务上下文定义 ``` ## 🎯 核心职责 - **服务初始化**: 集中管理所有服务依赖 - **依赖注入**: 为handler提供所需组件 - **生命周期**: 管理服务生命周期 ## 🔧 组件管理 ```go type ServiceContext struct { Config config.Config // 配置 DB *gorm.DB // 数据库连接 UserModel model.UserModel // 用户模型 PhotoModel model.PhotoModel // 照片模型 CategoryModel model.CategoryModel // 分类模型 Middleware *middleware.MiddlewareManager // 中间件管理 } ``` ## 🚀 初始化流程 ``` 启动服务 → 加载配置 → 初始化数据库 → 创建模型 → 注册中间件 → 启动HTTP服务 ``` ## 📋 扩展方式 1. **新增模型**: 在ServiceContext中添加新字段 2. **初始化**: 在NewServiceContext中初始化 3. **使用**: 在handler中通过svc访问 ## 🎯 设计模式 - **单例模式**: 整个服务生命周期只创建一次 - **依赖注入**: 通过构造函数传递依赖 - **门面模式**: 为上层提供统一的访问接口