application.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package application
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/api"
  4. "git.sxidc.com/go-framework/baize/framework/core/infrastructure"
  5. "git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
  6. )
  7. type App struct {
  8. // api实例
  9. apiInstance *api.Api
  10. // 基础设施实例
  11. infrastructureInstance *infrastructure.Infrastructure
  12. // 日志
  13. loggerInstance *logger.Logger
  14. }
  15. // New 创建Application
  16. func New(api *api.Api, i *infrastructure.Infrastructure) *App {
  17. return &App{
  18. apiInstance: api,
  19. infrastructureInstance: i,
  20. }
  21. }
  22. // Start 运行应用
  23. func (app *App) Start() error {
  24. err := app.apiInstance.Start()
  25. if err != nil {
  26. return err
  27. }
  28. return nil
  29. }
  30. // Finish 终止应用
  31. func (app *App) Finish() error {
  32. err := app.apiInstance.Finish()
  33. if err != nil {
  34. return err
  35. }
  36. return nil
  37. }
  38. // Api 获取api实例
  39. func (app *App) Api() *api.Api {
  40. return app.apiInstance
  41. }
  42. // Infrastructure 获取Infrastructure实例
  43. func (app *App) Infrastructure() *infrastructure.Infrastructure {
  44. return app.infrastructureInstance
  45. }
  46. // Logger 获取logger实例
  47. func (app *App) Logger() *logger.Logger {
  48. return app.loggerInstance
  49. }
  50. // ChooseRouter 选择Router
  51. func (app *App) ChooseRouter(routerType string, version string) api.Router {
  52. return app.Api().ChooseRouter(routerType, version)
  53. }