refactor: align framework cleanup with new bootstrap flow
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
50
internal/bootstrap/bootstrap.go
Normal file
50
internal/bootstrap/bootstrap.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package bootstrap
|
||||
|
||||
import (
|
||||
pkgGorm "github.com/break/junhong_cmp_fiber/pkg/gorm"
|
||||
)
|
||||
|
||||
// Bootstrap 初始化所有业务组件并返回 Handlers
|
||||
// 这是应用启动时的主入口,负责编排所有组件的初始化流程
|
||||
//
|
||||
// 初始化顺序:
|
||||
// 1. 初始化 Store 层(数据访问)
|
||||
// 2. 注册 GORM Callbacks(数据权限过滤等)- 需要 AccountStore
|
||||
// 3. 初始化 Service 层(业务逻辑)
|
||||
// 4. 初始化 Handler 层(HTTP 处理)
|
||||
//
|
||||
// 参数:
|
||||
// - deps: 基础依赖(DB, Redis, Logger)
|
||||
//
|
||||
// 返回:
|
||||
// - *Handlers: 所有 HTTP 处理器
|
||||
// - error: 初始化错误
|
||||
func Bootstrap(deps *Dependencies) (*Handlers, error) {
|
||||
// 1. 初始化 Store 层
|
||||
stores := initStores(deps)
|
||||
|
||||
// 2. 注册 GORM Callbacks(需要 AccountStore 来查询下级 ID)
|
||||
if err := registerGORMCallbacks(deps, stores); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 3. 初始化 Service 层
|
||||
services := initServices(stores)
|
||||
|
||||
// 4. 初始化 Handler 层
|
||||
handlers := initHandlers(services)
|
||||
|
||||
return handlers, nil
|
||||
}
|
||||
|
||||
// registerGORMCallbacks 注册 GORM Callbacks
|
||||
func registerGORMCallbacks(deps *Dependencies, stores *stores) error {
|
||||
// 注册数据权限过滤 Callback
|
||||
if err := pkgGorm.RegisterDataPermissionCallback(deps.DB, stores.Account); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO: 在此添加其他 GORM Callbacks
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user