-
Notifications
You must be signed in to change notification settings - Fork 179
Governator Phases
Randgalt edited this page Oct 26, 2012
·
15 revisions
Guice users are familiar with the “binding phase” where Guice calls your modules to register bindings. You then create the Injector as a second phase. Governator introduces several new phases. The timeline is like this:
- Classpath scanning phase
- Specified packages are scanned for Governator annotations
- The classes are stored for later phases
- Bootstrapping phase
- The Application bootstrap module (if specified) is invoked
- Auto bind ConfigurationProviders are bound
- The LifecycleManager is created via the bootstrap Injector
- Main Injector phase
- Application provided modules are added
- AutoBindSingletons are bound as eager singletons
- AutoBind arguments are bound via the corresponding AutoBindProvider
- The main Injector is created
- As each object is created by Guice:
- PreConfiguration methods are called
- Configuration values are set
- PostConstruct methods are called
- Start phase
- The application calls LifecycleManager.start()
- Bean/field validation is done
- Any WarmUp methods are executed via Fork/Join
Objects that are injected after LifecycleManager.start() get passed through the Lifecycle: i.e. PreConfiguration, Configuration and PostConstruct methods are called. Additionally, bean/field validation and warming up are done immediately.
When the application calls LifecycleManager.close() …
Each object that is being actively managed is shutdown by calling its PreDestroy methods (if any).
- Home
- Getting Started
- Bootstrapping
- Lifecycle Management
- Auto Binding
- Module-Dependencies
- Warm Up
- Configuration Mapping
- Field Validation
- Lazy Singleton
- Concurrent Singleton
- Generic Binding Annotations
- LifecycleListener
- Governator Phases
- Grapher Integration
- JUnit Testing
- FAQ
- Best Practices
- Spring, PicoContainer, Etc.
- Javadoc
- End-to-End Examples