package global import ( "sync" "github.com/samber/do" ) var container *globalContainer type globalContainer struct { container *do.Injector once sync.Once } func GetGlobalContainer() *do.Injector { if container == nil { container = &globalContainer{ once: sync.Once{}, } container.once.Do(func() { container.container = do.New() }) } return container.container }