Skip to main content

Lifecycle Hooks

Lifecycle hooks allow you to hook into lifecycle events of the servlet/resource creation and REST calls.

For example, if you want to add an initialization method to your resource:

@Rest(...)
public class MyResource extends BasicRestObject {

// Our database.
private Map myDatabase;

@RestInit
public void initMyDatabase(RestContext.Builder builder) throws Exception {
myDatabase = new LinkedHashMap();
}
}

Or if you want to intercept REST calls:

@Rest(...)
public class MyResource extends BasicRestObject {

// Add a request attribute to all incoming requests.
@RestPreCall
public void onPreCall(RestRequest req) {
req.setAttribute("foo", "bar");
}
}

The following lifecycle annotations are provided:

Resource lifecycle events:RestInit - Right before initialization.RestPostInit - Right after initialization.RestDestroy - Right before servlet destroy.REST call lifecycle events:RestStartCall - At the beginning of a REST call.RestPreCall - Right before the @RestOp method is invoked.RestPostCall - Right after the @RestOp method is invoked.RestEndCall - At the end of the REST call after the response has been flushed.