Skip to content

Lifecycle Management

Randgalt edited this page Oct 17, 2012 · 26 revisions

There is much more to an object’s lifecyle than just allocation via new. In particular, there is an important anti-pattern regarding letting this “escape” from a constructor. This page describes the problem in detail.

In Governator, an object can go through a number of steps in its lifecycle. Annotations are available to define methods for these steps. The steps are:

Allocation (via Guice)
     |
     v
Pre-Configuration
     |
     v
Configuration
     |
     V
Post Construction
     |
     V
Warm Up

At the end of the application, the object goes through this step:

Pre Destroy

Here are the annotations available:

Annotation Target Description
@PreConfiguration Methods Called prior to Configuration Mapping
@PostConfiguration Methods Called after Configuration Mapping
@WarmUp Methods Called when LifecycleManager.start() is called. Executed in parallel in the background.
@CoolDown Methods Called when LifecycleManager.close() is called. Executed in parallel in the background.
@PreDestroy Methods Called after cool downs (if any)