mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 16:00:25 +08:00
68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package application
|
|
|
|
import (
|
|
"fmt"
|
|
"mayfly-go/internal/db/infrastructure/persistence"
|
|
"mayfly-go/pkg/ioc"
|
|
"sync"
|
|
)
|
|
|
|
func InitIoc() {
|
|
persistence.Init()
|
|
|
|
ioc.Register(new(instanceAppImpl), ioc.WithComponentName("DbInstanceApp"))
|
|
ioc.Register(new(dbAppImpl), ioc.WithComponentName("DbApp"))
|
|
ioc.Register(new(dbSqlExecAppImpl), ioc.WithComponentName("DbSqlExecApp"))
|
|
ioc.Register(new(dbSqlAppImpl), ioc.WithComponentName("DbSqlApp"))
|
|
ioc.Register(new(dataSyncAppImpl), ioc.WithComponentName("DbDataSyncTaskApp"))
|
|
|
|
ioc.Register(newDbScheduler(), ioc.WithComponentName("DbScheduler"))
|
|
ioc.Register(new(DbBackupApp), ioc.WithComponentName("DbBackupApp"))
|
|
ioc.Register(new(DbRestoreApp), ioc.WithComponentName("DbRestoreApp"))
|
|
ioc.Register(newDbBinlogApp(), ioc.WithComponentName("DbBinlogApp"))
|
|
}
|
|
|
|
func Init() {
|
|
sync.OnceFunc(func() {
|
|
if err := GetDbBackupApp().Init(); err != nil {
|
|
panic(fmt.Sprintf("初始化 dbBackupApp 失败: %v", err))
|
|
}
|
|
if err := GetDbRestoreApp().Init(); err != nil {
|
|
panic(fmt.Sprintf("初始化 dbRestoreApp 失败: %v", err))
|
|
}
|
|
GetDataSyncTaskApp().InitCronJob()
|
|
})()
|
|
}
|
|
|
|
func GetInstanceApp() Instance {
|
|
return ioc.Get[Instance]("DbInstance")
|
|
}
|
|
|
|
func GetDbApp() Db {
|
|
return ioc.Get[Db]("DbApp")
|
|
}
|
|
|
|
func GetDbSqlApp() DbSql {
|
|
return ioc.Get[DbSql]("DbSqlApp")
|
|
}
|
|
|
|
func GetDbSqlExecApp() DbSqlExec {
|
|
return ioc.Get[DbSqlExec]("DbSqlExecApp")
|
|
}
|
|
|
|
func GetDbBackupApp() *DbBackupApp {
|
|
return ioc.Get[*DbBackupApp]("DbBackupApp")
|
|
}
|
|
|
|
func GetDbRestoreApp() *DbRestoreApp {
|
|
return ioc.Get[*DbRestoreApp]("DbRestoreApp")
|
|
}
|
|
|
|
func GetDbBinlogApp() *DbBinlogApp {
|
|
return ioc.Get[*DbBinlogApp]("DbBinlogApp")
|
|
}
|
|
|
|
func GetDataSyncTaskApp() DataSyncTask {
|
|
return ioc.Get[DataSyncTask]("DbDataSyncTaskApp")
|
|
}
|