DI&GIN验证尝试
DI 框架我是没招了,GO 的狗屎接口系统让运行时的DI注入都没办法自动收集接口。 所以...只能捏着鼻子用了。正在想办法解决 GIN 验证框架返回英文的问题
This commit is contained in:
@@ -1,17 +1,16 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"Crimson-Gatekeeper/internal/database"
|
||||
"Crimson-Gatekeeper/internal/route"
|
||||
|
||||
"github.com/go-spring/spring-core/gs"
|
||||
)
|
||||
|
||||
type Test struct{}
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
gs.Provide(database.GetDataBaseClient)
|
||||
gs.Provide(database.GetQuery)
|
||||
gs.Provide(route.NewTestBoot).AsRunner()
|
||||
gs.Run()
|
||||
app, err := getApplication()
|
||||
if err != nil {
|
||||
fmt.Println("应用初始化失败")
|
||||
panic(err)
|
||||
}
|
||||
err = app.Start()
|
||||
if err != nil {
|
||||
fmt.Println("应用启动失败")
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
30
srv/cmd/gatekeeper/wire.go
Normal file
30
srv/cmd/gatekeeper/wire.go
Normal file
@@ -0,0 +1,30 @@
|
||||
//go:build wireinject
|
||||
// +build wireinject
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"Crimson-Gatekeeper/internal/application"
|
||||
"Crimson-Gatekeeper/internal/database"
|
||||
"Crimson-Gatekeeper/internal/module/userpak"
|
||||
|
||||
"github.com/google/wire"
|
||||
)
|
||||
|
||||
func getApplication() (*application.Application, error) {
|
||||
wire.Build(
|
||||
CtrlCollector,
|
||||
application.NewApplication,
|
||||
database.GetDataBaseClient,
|
||||
database.GetQuery,
|
||||
database.GetPoolCfg,
|
||||
userpak.NewUserCtl,
|
||||
)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CtrlCollector(
|
||||
c1 *userpak.UserCtl,
|
||||
) []application.Ctrl {
|
||||
return []application.Ctrl{c1}
|
||||
}
|
||||
39
srv/cmd/gatekeeper/wire_gen.go
Normal file
39
srv/cmd/gatekeeper/wire_gen.go
Normal file
@@ -0,0 +1,39 @@
|
||||
// Code generated by Wire. DO NOT EDIT.
|
||||
|
||||
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
|
||||
//go:build !wireinject
|
||||
// +build !wireinject
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"Crimson-Gatekeeper/internal/application"
|
||||
"Crimson-Gatekeeper/internal/database"
|
||||
"Crimson-Gatekeeper/internal/module/userpak"
|
||||
)
|
||||
|
||||
// Injectors from wire.go:
|
||||
|
||||
func getApplication() (*application.Application, error) {
|
||||
db, err := database.GetDataBaseClient()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
query := database.GetQuery(db)
|
||||
userCtl := userpak.NewUserCtl(query)
|
||||
v := CtrlCollector(userCtl)
|
||||
sqlDB, err := database.GetPoolCfg(db)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
applicationApplication := application.NewApplication(v, sqlDB)
|
||||
return applicationApplication, nil
|
||||
}
|
||||
|
||||
// wire.go:
|
||||
|
||||
func CtrlCollector(
|
||||
c1 *userpak.UserCtl,
|
||||
) []application.Ctrl {
|
||||
return []application.Ctrl{c1}
|
||||
}
|
||||
Reference in New Issue
Block a user