mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 16:00:25 +08:00
refactor: ioc与系统初始化处理方式调整
This commit is contained in:
@@ -1,16 +1,45 @@
|
||||
package initialize
|
||||
|
||||
import (
|
||||
dbInit "mayfly-go/internal/db/init"
|
||||
machineInit "mayfly-go/internal/machine/init"
|
||||
"mayfly-go/pkg/biz"
|
||||
"mayfly-go/pkg/ioc"
|
||||
)
|
||||
|
||||
func InitOther() {
|
||||
// 为所有注册的实例注入其依赖的其他组件实例
|
||||
biz.ErrIsNil(ioc.DefaultContainer.InjectComponents())
|
||||
// 初始化ioc函数
|
||||
type InitIocFunc func()
|
||||
|
||||
machineInit.Init()
|
||||
dbInit.Init()
|
||||
// 初始化函数
|
||||
type InitFunc func()
|
||||
|
||||
var (
|
||||
initIocFuncs = make([]InitIocFunc, 0)
|
||||
initFuncs = make([]InitFunc, 0)
|
||||
)
|
||||
|
||||
// 添加初始化ioc函数,由各个默认自行添加
|
||||
func AddInitIocFunc(initIocFunc InitIocFunc) {
|
||||
initIocFuncs = append(initIocFuncs, initIocFunc)
|
||||
}
|
||||
|
||||
// 添加初始化函数,由各个默认自行添加
|
||||
func AddInitFunc(initFunc InitFunc) {
|
||||
initFuncs = append(initFuncs, initFunc)
|
||||
}
|
||||
|
||||
// 系统启动时,调用各个模块的初始化函数
|
||||
func InitOther() {
|
||||
// 调用各个默认ioc组件注册初始化,优先调用ioc初始化注册函数和注入函数(可能在后续的InitFunc中需要用到依赖实例)
|
||||
for _, initIocFunc := range initIocFuncs {
|
||||
initIocFunc()
|
||||
}
|
||||
initIocFuncs = nil
|
||||
|
||||
// 为所有注册的实例注入其依赖的其他组件实例
|
||||
biz.ErrIsNil(ioc.InjectComponents())
|
||||
|
||||
// 调用各个默认的初始化函数
|
||||
for _, initFunc := range initFuncs {
|
||||
initFunc()
|
||||
}
|
||||
initFuncs = nil
|
||||
}
|
||||
|
||||
@@ -3,15 +3,6 @@ package initialize
|
||||
import (
|
||||
"fmt"
|
||||
"io/fs"
|
||||
auth_router "mayfly-go/internal/auth/router"
|
||||
common_router "mayfly-go/internal/common/router"
|
||||
db_router "mayfly-go/internal/db/router"
|
||||
machine_router "mayfly-go/internal/machine/router"
|
||||
mongo_router "mayfly-go/internal/mongo/router"
|
||||
msg_router "mayfly-go/internal/msg/router"
|
||||
redis_router "mayfly-go/internal/redis/router"
|
||||
sys_router "mayfly-go/internal/sys/router"
|
||||
tag_router "mayfly-go/internal/tag/router"
|
||||
"mayfly-go/pkg/config"
|
||||
"mayfly-go/pkg/middleware"
|
||||
"mayfly-go/static"
|
||||
@@ -20,6 +11,18 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 初始化路由函数
|
||||
type InitRouterFunc func(router *gin.RouterGroup)
|
||||
|
||||
var (
|
||||
initRouterFuncs = make([]InitRouterFunc, 0)
|
||||
)
|
||||
|
||||
// 添加初始化路由函数,由各个默认自行添加
|
||||
func AddInitRouterFunc(initRouterFunc InitRouterFunc) {
|
||||
initRouterFuncs = append(initRouterFuncs, initRouterFunc)
|
||||
}
|
||||
|
||||
func InitRouter() *gin.Engine {
|
||||
// server配置
|
||||
serverConfig := config.Conf.Server
|
||||
@@ -43,20 +46,11 @@ func InitRouter() *gin.Engine {
|
||||
|
||||
// 设置路由组
|
||||
api := router.Group(serverConfig.ContextPath + "/api")
|
||||
{
|
||||
common_router.Init(api)
|
||||
|
||||
auth_router.Init(api)
|
||||
|
||||
sys_router.Init(api)
|
||||
msg_router.Init(api)
|
||||
|
||||
tag_router.Init(api)
|
||||
machine_router.Init(api)
|
||||
db_router.Init(api)
|
||||
redis_router.Init(api)
|
||||
mongo_router.Init(api)
|
||||
// 调用所有模块注册的初始化路由函数
|
||||
for _, initRouterFunc := range initRouterFuncs {
|
||||
initRouterFunc(api)
|
||||
}
|
||||
initRouterFuncs = nil
|
||||
|
||||
return router
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package initialize
|
||||
|
||||
import (
|
||||
sysapp "mayfly-go/internal/sys/application"
|
||||
"mayfly-go/pkg/req"
|
||||
)
|
||||
|
||||
func InitSaveLogFunc() req.SaveLogFunc {
|
||||
return sysapp.GetSyslogApp().SaveFromReq
|
||||
}
|
||||
@@ -1,10 +1,20 @@
|
||||
package initialize
|
||||
|
||||
import (
|
||||
dbInit "mayfly-go/internal/db/init"
|
||||
// 系统进程退出终止函数
|
||||
type TerminateFunc func()
|
||||
|
||||
var (
|
||||
terminateFuncs = make([]TerminateFunc, 0)
|
||||
)
|
||||
|
||||
// 添加系统退出终止时执行的函数,由各个默认自行添加
|
||||
func AddTerminateFunc(terminateFunc TerminateFunc) {
|
||||
terminateFuncs = append(terminateFuncs, terminateFunc)
|
||||
}
|
||||
|
||||
// 终止进程服务后的一些操作
|
||||
func Terminate() {
|
||||
dbInit.Terminate()
|
||||
for _, terminateFunc := range terminateFuncs {
|
||||
terminateFunc()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user