wire.go 846 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //go:build wireinject
  2. // +build wireinject
  3. package wire
  4. import (
  5. "github.com/go-nunu/nunu-layout-advanced/internal/di"
  6. "github.com/go-nunu/nunu-layout-advanced/internal/server"
  7. "github.com/go-nunu/nunu-layout-advanced/internal/task"
  8. "github.com/go-nunu/nunu-layout-advanced/pkg/app"
  9. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  10. "github.com/google/wire"
  11. "github.com/spf13/viper"
  12. )
  13. // 使用共享的Provider Set
  14. var taskSet = task.TaskSet
  15. var serverSet = server.TaskServerSet
  16. // build App
  17. func newApp(
  18. task *server.TaskServer,
  19. ) *app.App {
  20. return app.NewApp(
  21. app.WithServer(task),
  22. app.WithName("demo-task"),
  23. )
  24. }
  25. func NewWire(*viper.Viper, *log.Logger) (*app.App, func(), error) {
  26. panic(wire.Build(
  27. // 使用模块化依赖注入
  28. di.RepositorySet,
  29. di.ServiceSet,
  30. di.CoreSet,
  31. taskSet,
  32. serverSet,
  33. newApp,
  34. ))
  35. }