application.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. )
  6. type App struct {
  7. // api实例
  8. apiInstance *api.Api
  9. // 基础设施实例
  10. infrastructureInstance *infrastructure.Infrastructure
  11. }
  12. // New 创建Application
  13. func New(api *api.Api, i *infrastructure.Infrastructure) *App {
  14. return &App{
  15. apiInstance: api,
  16. infrastructureInstance: i,
  17. }
  18. }
  19. // Start 运行应用
  20. func (app *App) Start() error {
  21. err := app.apiInstance.Start()
  22. if err != nil {
  23. return err
  24. }
  25. return nil
  26. }
  27. // Finish 终止应用
  28. func (app *App) Finish() error {
  29. err := app.apiInstance.Finish()
  30. if err != nil {
  31. return err
  32. }
  33. return nil
  34. }
  35. // Api 获取api实例
  36. func (app *App) Api() *api.Api {
  37. return app.apiInstance
  38. }
  39. // Infrastructure 获取Infrastructure实例
  40. func (app *App) Infrastructure() *infrastructure.Infrastructure {
  41. return app.infrastructureInstance
  42. }
  43. // ChooseRouter 选择Router
  44. func (app *App) ChooseRouter(routerType string, version string) api.Router {
  45. return app.Api().ChooseRouter(routerType, version)
  46. }