Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Overview of the Injector creation process
The Injector Creation Process
Guice builds an injector using configuration modules. If there are errors at the end of any phase, injector creation is halted and a
CreationException is thrown.
Phase 1: Static Building
In this phase, Guice interprets elements, creates bindings, and validates the configuration. The only user code executed in this phase is
This is the only phase executed for
Phase 2: Injection
During this phase, objects will be injected on-demand if necessary. For example, if satisfying a static injection requires a provider instance, the provider will be injected before it is used. If initialized objects are circularly dependent, the order of injection is undefined.
First, statics registered via
requestStaticInjection() are injected. Next, instances that are the arguments to
toProvider() are injected.
Phase 3: Singleton Preloading
Stage.PRODUCTION, all singletons are created. In
Stage.DEVELOPMENT, only bindings scoped using
asEagerSingleton() are created.