-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwire.go
44 lines (40 loc) · 1.15 KB
/
wire.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//go:build wireinject
package main
import (
"github.com/gin-gonic/gin"
"github.com/google/wire"
"webook/internal/repository"
"webook/internal/repository/cache"
"webook/internal/repository/dao"
"webook/internal/service"
"webook/internal/web"
"webook/internal/web/jwt"
"webook/ioc"
)
var interactiveSvcSet = wire.NewSet(
dao.NewGormInteractiveDAO,
cache.NewInteractiveCache,
repository.NewCachedInteractiveRepository,
service.NewInteractiveService,
)
func InitWebServer() *gin.Engine {
wire.Build(
//第三方依赖
ioc.InitLogger, ioc.InitDB, ioc.InitRedis,
//dao
dao.NewGormUserDAO, dao.NewGormArticleDAO,
//cache
cache.NewRedisUserCache, cache.NewRedisCodeCache, cache.NewArticleRedisCache,
//repository
repository.NewCacheUserRepository, repository.NewCodeRepository, repository.NewCachedArticleRepository,
//service
ioc.InitSMSService, ioc.InitWechatService,
service.NewUserService, service.NewCodeService, service.NewArticleService,
//handler
jwt.NewRedisJWTHandler,
web.NewUserHandler, web.NewOAuth2WechatHandler, web.NewArticleHandler,
ioc.InitGinMiddleware, ioc.InitWebService,
interactiveSvcSet,
)
return gin.Default()
}