container is not shared. In other words, the container always creates a new instance when the type is resolved. Graph (the default scope) With ObjectScope.graph, an instance is always created, as in ObjectScope.transient, if you directly call resolve method of a container, but instances resolved in factory closures are shared during the resolution of the root instance to construct the object graph. Container In ObjectScope.container, an instance provided by a container is shared within the container and its child containers. Weak In ObjectScope.weak an instance provided by a container is shared within the container and its child containers as long as there are other strong references to it. Once all strong references to an instance cease to exist, it won't be shared anymore and new instance will be created during next resolution of the type. Provided scopes