application.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package application
  2. import (
  3. "git.sxidc.com/go-framework/baize"
  4. "git.sxidc.com/go-framework/baize/examples/examples/project/application/service"
  5. "git.sxidc.com/go-framework/baize/examples/examples/project/config"
  6. "git.sxidc.com/go-framework/baize/framwork/application"
  7. )
  8. var appInstance *application.App
  9. func NewApp() {
  10. if appInstance != nil {
  11. return
  12. }
  13. appInstance = baize.NewApplication(config.GetConfig().ApplicationConfig)
  14. // 注册Router
  15. appInstance.Api().PrefixRouter().RegisterVersionedRouter("v1")
  16. }
  17. func DestroyApp() {
  18. if appInstance == nil {
  19. return
  20. }
  21. baize.DestroyApplication(appInstance)
  22. }
  23. type Service interface {
  24. Init(appInstance *application.App) error
  25. Destroy() error
  26. }
  27. var applications = []Service{
  28. &service.Version{},
  29. &service.Configuration{},
  30. &service.Class{},
  31. &service.Student{},
  32. &service.Identity{},
  33. &service.Family{},
  34. &service.StudentAndFamily{},
  35. &service.StudentAndIdentity{},
  36. }
  37. func Start() error {
  38. // 初始化服务
  39. for _, app := range applications {
  40. err := app.Init(appInstance)
  41. if err != nil {
  42. return err
  43. }
  44. }
  45. err := appInstance.Start()
  46. if err != nil {
  47. return err
  48. }
  49. return nil
  50. }
  51. func Finish() error {
  52. err := appInstance.Finish()
  53. if err != nil {
  54. return err
  55. }
  56. // 销毁服务
  57. for _, app := range applications {
  58. err := app.Destroy()
  59. if err != nil {
  60. return err
  61. }
  62. }
  63. return nil
  64. }