package baize import ( "git.sxidc.com/go-framework/baize/framwork/api" "git.sxidc.com/go-framework/baize/framwork/application" "git.sxidc.com/go-framework/baize/framwork/infrastructure" "git.sxidc.com/go-framework/baize/framwork/infrastructure/database/data_service" "git.sxidc.com/go-framework/baize/framwork/infrastructure/database/operations" ) func NewApplication(conf application.Config) *application.App { // 创建API apiConfig := conf.ApiConfig apiInstance := api.New(api.WithUrlPrefix(apiConfig.UrlPrefix), api.WithPort(apiConfig.Port)) // 创建基础设施 var infrastructureInstance *infrastructure.Infrastructure infrastructureConfig := infrastructure.Config{ DatabaseConfig: infrastructure.DatabaseConfig{}, } if conf.InfrastructureConfig.Database.Operations != nil { operationsConfig := conf.InfrastructureConfig.Database.Operations if operationsConfig != nil { infrastructureConfig.DatabaseConfig.Operations = &operations.Config{ UserName: operationsConfig.UserName, Password: operationsConfig.Password, Address: operationsConfig.Address, Port: operationsConfig.Port, Database: operationsConfig.Database, MaxConnections: operationsConfig.MaxConnections, MaxIdleConnections: operationsConfig.MaxIdleConnections, } } } if conf.InfrastructureConfig.Database.DataService != nil { dataServiceConfig := conf.InfrastructureConfig.Database.DataService if dataServiceConfig != nil { infrastructureConfig.DatabaseConfig.DataService = &data_service.Config{ Token: dataServiceConfig.Token, Address: dataServiceConfig.Address, HttpPort: dataServiceConfig.HttpPort, GrpcPort: dataServiceConfig.GrpcPort, Namespace: dataServiceConfig.Namespace, DataSource: dataServiceConfig.DataSource, TimeoutSec: dataServiceConfig.TimeoutSec, } } } infrastructureInstance = infrastructure.NewInfrastructure(infrastructureConfig) return application.New(apiInstance, infrastructureInstance) } func DestroyApplication(app *application.App) { if app == nil { return } infrastructure.DestroyInfrastructure(app.Infrastructure()) }