| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package application
- import (
- "git.sxidc.com/go-framework/baize/framwork/api"
- "git.sxidc.com/go-framework/baize/framwork/binding"
- "git.sxidc.com/go-framework/baize/framwork/domain"
- "git.sxidc.com/go-framework/baize/framwork/infrastructure"
- "git.sxidc.com/go-framework/baize/framwork/infrastructure/logger"
- "git.sxidc.com/go-tools/utils/strutils"
- )
- type App struct {
- // api实例
- apiInstance *api.Api
- // 基础设施实例
- infrastructureInstance *infrastructure.Infrastructure
- // 日志
- loggerInstance *logger.Logger
- // 领域实体
- DomainObjects map[string]domain.Object
- // 应用服务
- Services map[string]Service
- }
- // New 创建Application
- func New(api *api.Api, i *infrastructure.Infrastructure) *App {
- return &App{
- apiInstance: api,
- infrastructureInstance: i,
- }
- }
- // Start 运行应用
- func (app *App) Start() error {
- err := app.apiInstance.Start()
- if err != nil {
- return err
- }
- return nil
- }
- // Finish 终止应用
- func (app *App) Finish() error {
- err := app.apiInstance.Finish()
- if err != nil {
- return err
- }
- return nil
- }
- // Api 获取api实例
- func (app *App) Api() *api.Api {
- return app.apiInstance
- }
- // Infrastructure 获取Infrastructure实例
- func (app *App) Infrastructure() *infrastructure.Infrastructure {
- return app.infrastructureInstance
- }
- // Logger 获取logger实例
- func (app *App) Logger() *logger.Logger {
- return app.loggerInstance
- }
- const (
- RouterRoot = "root"
- RouterPrefix = "prefix"
- )
- // Binder 创建Binder
- func (app *App) Binder(routerType string, version string) *binding.Binder {
- var router api.Router
- switch routerType {
- case RouterRoot:
- router = app.Api().RootRouter()
- case RouterPrefix:
- router = app.Api().PrefixRouter()
- default:
- router = app.Api().PrefixRouter()
- }
- if strutils.IsStringNotEmpty(version) {
- router = router.VersionedRouter(version)
- }
- return binding.NewBinder(router, app.infrastructureInstance)
- }
|