代码拉取完成,页面将自动刷新
//go:build wireinject
package main
import (
"github.com/google/wire"
"webook/internal/events/article"
"webook/internal/repository"
article2 "webook/internal/repository/article"
"webook/internal/repository/cache"
"webook/internal/repository/dao"
article3 "webook/internal/repository/dao/article"
"webook/internal/service"
"webook/internal/web"
ijwt "webook/internal/web/jwt"
"webook/ioc"
)
var interactiveSvcProvider = wire.NewSet(
service.NewInteractiveService,
repository.NewCachedInteractiveRepository,
dao.NewGORMInteractiveDAO,
cache.NewRedisInteractiveCache,
)
var rankingServiceSet = wire.NewSet(
repository.NewCachedRankingRepository,
cache.NewRankingRedisCache,
service.NewBatchRankingService,
)
func InitWebServer() *App {
wire.Build(
// 最基础的第三方依赖
ioc.InitDB, ioc.InitRedis,
ioc.InitLogger,
ioc.InitKafka,
ioc.NewConsumers,
ioc.NewSyncProducer,
interactiveSvcProvider,
rankingServiceSet,
ioc.InitJobs,
ioc.InitRankingJob,
ioc.InitRLockClient,
// consumer
article.NewInteractiveReadEventBatchConsumer,
article.NewKafkaProducer,
// 初始化 DAO
dao.NewUserDAO,
article3.NewGORMArticleDAO,
cache.NewUserCache,
cache.NewCodeCache,
repository.NewUserRepository,
repository.NewCodeRepository,
article2.NewArticleRepository,
service.NewUserService,
service.NewCodeService,
service.NewArticleService,
// 直接基于内存实现
ioc.InitSMSService,
ioc.InitWechatService,
web.NewUserHandler,
web.NewArticleHandler,
web.NewWeChatOAuth2Handler,
//ioc.NewWechatHandlerConfig,
ijwt.NewRedisJWTHandler,
// 你中间件呢?
// 你注册路由呢?
// 你这个地方没有用到前面的任何东西
//gin.Default,
ioc.InitWebServer,
ioc.InitMiddlewares,
// 组装我这个结构体的所有字段
wire.Struct(new(App), "*"),
)
return new(App)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。