29 lines
396 B
Go
29 lines
396 B
Go
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
|
|
}
|