Skip to content

Lifecycle Management

Randgalt edited this page Feb 20, 2013 · 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
Set Resources
     |
     V
Post Construction
     |
     V
Validation and Warm Up
     |
     V
  -- application runs until termination, then... --    
     |
     V
Pre Destroy

Here are the annotations available:

Annotation Target Description
@PreConfiguration Methods Called prior to Configuration Mapping
Resource/Resources Classes,Methods,Fields Called after Configuration Mapping. See JDK Docs for details.
@PostConstruct Methods Called after Resource setting
@Min, @Max, etc. Fields Processed when LifecycleManager.start() is called. See Field Validation for details.
@WarmUp Methods Called when LifecycleManager.start() is called. Executed in parallel in the background. See Warm Up for details.
@PreDestroy Methods Called when LifecycleManager.close() is called.