Skip to content

Governator Phases

Randgalt edited this page Aug 16, 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:

  1. Classpath scanning phase
    • Specified packages are scanned for Governator annotations
    • The classes are stored for later phases
  2. Bootstrapping phase
    • Application bootstrap modules are invoked
    • Auto bind AssetLoaders are bound
    • The auto bind ConfigurationProvider (if one is found) is bound
    • The LifecycleManager is created via the bootstrap Injector
  3. Main Injector phase
    • Application provided modules are added
    • AutoBindSingletons are bound
    • Main Injector is created
    • As each object is created by Guice:
      1. RequiredAssets are loaded
      2. Configuration values are set
      3. PostConstruct methods are called
  4. Start phase
    • The application calls LifecycleManager.start()
    • Bean/field validation is done
    • Any WarmUp methods are executed in background threads