baize.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package baize
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/api"
  4. "git.sxidc.com/go-framework/baize/framework/core/application"
  5. "git.sxidc.com/go-framework/baize/framework/core/infrastructure"
  6. "git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/data_service"
  7. "git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/operations"
  8. )
  9. func NewApplication(conf application.Config) *application.App {
  10. // 创建API
  11. apiConfig := conf.ApiConfig
  12. apiInstance := api.New(api.WithUrlPrefix(apiConfig.UrlPrefix), api.WithPort(apiConfig.Port))
  13. // 创建基础设施
  14. var infrastructureInstance *infrastructure.Infrastructure
  15. infrastructureConfig := infrastructure.Config{
  16. DatabaseConfig: infrastructure.DatabaseConfig{},
  17. }
  18. if conf.InfrastructureConfig.Database.Operations != nil {
  19. operationsConfig := conf.InfrastructureConfig.Database.Operations
  20. if operationsConfig != nil {
  21. infrastructureConfig.DatabaseConfig.Operations = &operations.Config{
  22. UserName: operationsConfig.UserName,
  23. Password: operationsConfig.Password,
  24. Address: operationsConfig.Address,
  25. Port: operationsConfig.Port,
  26. Database: operationsConfig.Database,
  27. MaxConnections: operationsConfig.MaxConnections,
  28. MaxIdleConnections: operationsConfig.MaxIdleConnections,
  29. }
  30. }
  31. }
  32. if conf.InfrastructureConfig.Database.DataService != nil {
  33. dataServiceConfig := conf.InfrastructureConfig.Database.DataService
  34. if dataServiceConfig != nil {
  35. infrastructureConfig.DatabaseConfig.DataService = &data_service.Config{
  36. Token: dataServiceConfig.Token,
  37. Address: dataServiceConfig.Address,
  38. HttpPort: dataServiceConfig.HttpPort,
  39. GrpcPort: dataServiceConfig.GrpcPort,
  40. Namespace: dataServiceConfig.Namespace,
  41. DataSource: dataServiceConfig.DataSource,
  42. TimeoutSec: dataServiceConfig.TimeoutSec,
  43. }
  44. }
  45. }
  46. infrastructureInstance = infrastructure.NewInfrastructure(infrastructureConfig)
  47. return application.New(apiInstance, infrastructureInstance)
  48. }
  49. func DestroyApplication(app *application.App) {
  50. if app == nil {
  51. return
  52. }
  53. infrastructure.DestroyInfrastructure(app.Infrastructure())
  54. }