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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package main
  2. import (
  3. "log"
  4. "git.x2erp.com/qdy/go-db/factory/database"
  5. "git.x2erp.com/qdy/go-db/sqldef"
  6. "git.x2erp.com/qdy/go-base/config"
  7. "git.x2erp.com/qdy/go-base/container"
  8. "git.x2erp.com/qdy/go-base/graceful"
  9. "git.x2erp.com/qdy/go-base/logger"
  10. "git.x2erp.com/qdy/go-base/webx"
  11. _ "git.x2erp.com/qdy/go-svc-mercury/internal/tables" // 导入表定义包,触发 init() 函数
  12. )
  13. var (
  14. appName = "svc-mercury"
  15. appVersion = "1"
  16. )
  17. func main() {
  18. // 0. 初始化日志
  19. logBootFactory := logger.InitBootLog()
  20. // 1. 获取配置文件
  21. cfg := config.GetConfig()
  22. cfg.SetAppName(appName)
  23. cfg.SetAppVersion(appVersion)
  24. // 2. 创建关闭容器
  25. ctr := container.NewContainer(cfg)
  26. // 注册日志,实现自动关闭
  27. container.Reg(ctr, logBootFactory)
  28. // 3. 创建数据库工厂
  29. dbFactory := container.Create(ctr, database.CreateDBFactory)
  30. dbFactory.TestConnection()
  31. // 创建表
  32. creteTabel(dbFactory)
  33. //启用运行日志
  34. container.Create(ctr, logger.InitRuntimeLogger)
  35. //建立httpservice
  36. //得到webservice服务工厂
  37. webxFactory := webx.GetWebServiceFactory()
  38. //建立hhtpService服务
  39. webServcie, _ := webxFactory.CreateService(cfg.GetServiceConfig())
  40. //建立路由-api
  41. //routerService := router.NewWebService(webServcie.GetRouter())
  42. //注册路由--api
  43. //registerRoutes(routerService, dbFactory)
  44. // 注册前端静态文件服务
  45. //frontendHandler := ServeFrontend()
  46. //webServcie.GetRouter().Handle("/", frontendHandler)
  47. //启动服务
  48. webServcie.Run()
  49. //等待关闭
  50. graceful.WaitForShutdown(cfg.GetServiceConfig().ServiceName, ctr, webServcie.GetServer())
  51. }
  52. func creteTabel(factory *database.DBFactory) {
  53. // 获取数据库连接和类型
  54. db := factory.GetDB()
  55. dbType := factory.GetDBType()
  56. // 创建表同步器
  57. syncer, err := sqldef.NewTableSyncer(db, dbType)
  58. if err != nil {
  59. log.Printf("创建 - 建立器失败: %v", err)
  60. }
  61. // 创建表
  62. if err := syncer.CreateTables(); err != nil {
  63. log.Printf("建表失败: %v", err)
  64. }
  65. log.Println("数据库表建立完成!")
  66. }