Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

main.go 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package main
  2. import (
  3. "git.x2erp.com/qdy/go-db/factory/database"
  4. "git.x2erp.com/qdy/go-base/config"
  5. "git.x2erp.com/qdy/go-base/consul"
  6. "git.x2erp.com/qdy/go-base/container"
  7. "git.x2erp.com/qdy/go-base/graceful"
  8. "git.x2erp.com/qdy/go-base/logger"
  9. "git.x2erp.com/qdy/go-base/webx"
  10. "git.x2erp.com/qdy/go-base/webx/health"
  11. "git.x2erp.com/qdy/go-base/webx/router"
  12. )
  13. var (
  14. appName = "svc-mercury"
  15. appVersion = "1"
  16. )
  17. // 定义结构体
  18. type CreateUserRequest struct {
  19. Name string `json:"name"`
  20. Email string `json:"email"`
  21. Age int `json:"age"`
  22. }
  23. type UserResponse struct {
  24. ID string `json:"id"`
  25. Name string `json:"name"`
  26. Email string `json:"email"`
  27. Data []map[string]interface{}
  28. }
  29. func main() {
  30. //0.日志
  31. //logger.InitBootLog()
  32. logBootFactory := logger.InitBootLog()
  33. //1.获取配置文件
  34. cfg := config.GetConfig()
  35. cfg.SetAppName(appName)
  36. cfg.SetAppVersion(appVersion)
  37. //2.创建关闭容器
  38. ctr := container.NewContainer(cfg)
  39. //注册日志,实现自动关闭
  40. container.Reg(ctr, logBootFactory)
  41. //3.创建数据库工厂--如果需求
  42. dbFactory := container.Create(ctr, database.CreateDBFactory)
  43. // 赋值认证中间件参数
  44. //middleware.JWTAuthMiddlewareInit(cfg)
  45. //测试数据库连接
  46. dbFactory.TestConnection()
  47. //得到webservice服务工厂
  48. webxFactory := webx.GetWebServiceFactory()
  49. //建立hhtpService服务
  50. webServcie, _ := webxFactory.CreateService(cfg.GetServiceConfig())
  51. //建立路由-api
  52. routerService := router.NewWebService(webServcie.GetRouter())
  53. //注册路由--api
  54. //registerDorisRouter(routerService, dbFactory)
  55. // 注册健康检查-api
  56. health.RegisterConsulHealthCheck(routerService)
  57. //启动服务
  58. webServcie.Run()
  59. //启用运行日志
  60. container.Create(ctr, logger.InitRuntimeLogger)
  61. //注册到注册中心
  62. container.Create(ctr, consul.Register)
  63. //等待关闭
  64. //webServcie.WaitForServiceShutdown(ctr)
  65. //启动服务
  66. webServcie.Run()
  67. //等待关闭
  68. graceful.WaitForShutdown(cfg.GetServiceConfig().ServiceName, ctr, webServcie.GetServer())
  69. }