baize.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package baize
  2. import (
  3. "git.sxidc.com/go-framework/baize/api"
  4. "git.sxidc.com/go-framework/baize/application"
  5. "git.sxidc.com/go-framework/baize/infrastructure"
  6. "git.sxidc.com/go-framework/baize/infrastructure/database/operations"
  7. )
  8. func NewApplication(conf application.Config) *application.App {
  9. apiConfig := conf.ApiConfig
  10. apiInstance := api.New(api.WithUrlPrefix(apiConfig.UrlPrefix), api.WithPort(apiConfig.Port))
  11. var infrastructureInstance *infrastructure.Infrastructure
  12. if conf.InfrastructureConfig.Database.Operations != nil {
  13. operationsConfig := conf.InfrastructureConfig.Database.Operations
  14. infrastructureInstance = infrastructure.NewInfrastructure(infrastructure.Config{
  15. DatabaseConfig: infrastructure.DatabaseConfig{
  16. Operations: &operations.Config{
  17. UserName: operationsConfig.UserName,
  18. Password: operationsConfig.Password,
  19. Address: operationsConfig.Address,
  20. Port: operationsConfig.Port,
  21. Database: operationsConfig.Database,
  22. MaxConnections: operationsConfig.MaxConnections,
  23. MaxIdleConnections: operationsConfig.MaxIdleConnections,
  24. },
  25. },
  26. })
  27. }
  28. return application.New(apiInstance, infrastructureInstance)
  29. }
  30. func DestroyApplication(app *application.App) {
  31. if app == nil {
  32. return
  33. }
  34. infrastructure.DestroyInfrastructure(app.Infrastructure())
  35. }